PacketSorter v1.4 page 1/19
PacketSorter v1.4
Copyright 1993, 1994 Rolf K. Wilms
Key Features
------------
- defragment FidoNet mail packets for up to 5 times faster tossing
- split and unsplit large messages to fit your systems limits
- sort messages by subject and/or time for easy thread-following
- break down large inbound packets to a handy size
- remove the garbage from 'bad' packets
- operates stand-alone or can be called from echomail tosser
- 32-BIT OS/2 and DOS version (needs i386 or higher)
PacketSorter v1.4 page 2/19
Contents of this document
-------------------------
1.Brief license and warranty information ......................3
2.A warning ...................................................3
3.System requirements .........................................3
4.Introduction ................................................4
5.Installation ................................................5
As a VCPI client ..........................................5
As a DPMI client ..........................................5
Under OS/2 ................................................5
Quick installation for Squish users .......................6
Quick installation for CrossPoint users ...................6
Quick installation for IMail users ........................7
Quick installation for FastEcho users .....................8
Installation for users of other tossers ...................9
6.Ways of configuration .......................................9
7.Command line options ........................................10
-c configuration file name ........................10
-w number of messages to keep in memory ...........10
-s limit in bytes for (un)splitting messages ......10
-p max. number of messages in output packets ......11
-otime sort messages by time ..........................11
-osubject sort messages by subject and time ..............11
-g remove garbage from packets ....................11
-e select Archiver entry from cfg file ............12
-l log file name ..................................12
-d directory where packets are searched ...........13
-h help ...........................................13
[program-with-args] exec. archiver before processing .....13
8. Setting the options via an environment variable ............13
9. Setting the options via a configuration file ...............14
10.Packets recognized and created .............................14
11.Return codes ...............................................15
12.Disk space consumption .....................................15
13.Removing garbage from packets ..............................15
14.Technology .................................................16
15.What is different in the registered version ................16
16.Other operating systems ....................................17
native MS-Windows .........................................17
Linux/Unix/Nextstep .......................................17
17.Author .....................................................17
18.Contents of the distribution archives ......................18
19.Thanks .....................................................19
PacketSorter v1.4 page 3/19
1. Brief license and warranty information
-----------------------------------------
You may copy and distribute the unmodified distribution archives
(PSRT_14.ZIP) as you receive it in any medium.
You may use PacketSorter for testing if it is of value to you. You must
not use PacketSorter for more than 30 days without registering it.
After a period of 30 days you must either stop using PacketSorter or
register. Look at the file 'ORDER.FRM' on how to register. The
registration fee is US $15.
There is no warranty.
Please read the file 'license.doc' for details.
2. A warning
------------
This version of PacketSorter has only been tested on a few different
systems, as it is any time when a new public release comes out.
Although PacketSorter performed well on these systems there is no
guarantee that it does not break yours. It is no bad idea to back up
your mail packets before you try PacketSorter the first time.
3. System requirements
----------------------
Operating system: OS/2 2.x
or DOS 3.0 or higher
Processor: i386 or higher
Memory: A minimum of 2MB is needed for DOS
PacketSorter v1.4 page 4/19
4. Introduction
---------------
PacketSorter is a utility for defragmenting, splitting, unsplitting,
cleaning and sorting inbound FidoNet (FTS-0001) message packets. It has
been developed in the first place because the time the echomail tosser
Squish needs to toss messsages into the messagebase heavily depends on
the fragmentation level of the packets received. The packets you
receive from your links are usually not sorted in any order.
PacketSorter groups the messages contained in the packets by their area
tag. On my system the packets defragmented with PacketSorter are tossed
by Squish up to 5 times faster than the original packets. The
performance gain you will notice depends on the tosser you use, the
messagebase you use and the performance of your disk subsystem. People
using a Hudson-style messagebase or a hardware cache controller for the
harddisk may notice no performance gain at all. PacketSorter is not
limited to be used only with Squish. You may use PacketSorter with any
other echomail processor.
FTS-0001 specifies no limit to the size of messages. Some echomail
processors crash if they're fed with messages that exceed a certain
size or those messages get dumped. The following echomail tosssers are
said to have limits:
GroupMail 8K
QMail 16K
ConfMail 14K
QEcho 10K
TosScan 32K
Squish 16K
FastEcho 64K (configurable)
PacketSorter can split and unsplit large messages according to FSC-
0047, so that your echomail processor operates well. Systems capable
processing large messages can get the messages unsplit to their
original size. See option -s.
Large inbound packets can be broken down into several smaller ones.
Some echomail processors benefit from this by saving disk space during
tossing for downlinks. If packets are considered as "bad" by the
echomail processor you may like to have smaller packets to examine
manually.
Messages within the echo areas can be sorted by subject and time or by
time only. Sorting by time usually does not "look" different from
unsorted messages when you list the messages in your mail reader but
helps to put original messages before the replies. Sorting by subject
and time does look different: all messages with identical subject are
grouped together so you can quickly see what's going on in a thread.
See options -otime, -osubject.
PacketSorter v1.4 page 5/19
Sometimes you receive packets not only containig messages but also some
"garbage". This garbage is introduced by poor software or transmission
errors. The consequence of such "grunged" packets is that your tosser
complains about "grunged messages", "data beyond logical end of file"
or just loses messages. PacketSorter can clean such packets by throwing
out the garbage, thus creating proper packets. Proper messages before
and following a bad chunk will not be lost. Messages beyond the logical
end of file will be recovered. Grunged packets can be renamed to *.bad
depending on the amount of garbage removed. See option -g and the
section 'Removing garbage from packets' for details.
5. Installation
---------------
PacketSorter can be run in three different environments (DOS-VCPI, DOS-
DPMI and OS/2). There are two DOS extenders (emx.exe and rsx.exe) and
one DLL (emx.dll for OS/2) packed with PacketSorter in the distribution
archives.
As a VCPI client
----------------
This is the 'normal' mode under DOS. Make sure that you either have
EMM386.EXE installed with EMS or don't have EMM386.EXE installed. If
you have EMM386 installed without providing EMS memory you will see
an error message 'Virtual mode not supported without VCPI'.
The VCPI mode uses the file emx.exe. Make sure that emx.exe can be
found in one of the directories of the PATH.
You may look at the file emxinst.doc for advanced installation
options available for the EMX DOS extender.
As a DPMI client
----------------
This is to use if you want PacketSorter to run in Windows or OS/2
DOS-emulation (DOS box). PacketSorter needs the file RSX.EXE to run
as a DPMI client. Make sure that rsx.exe can be found in one of the
directories of the PATH and add the following to your environment:
RSXOPT=-e
You can do this by putting the following line in your autoexec.bat:
SET RSXOPT=-e
If you forget to set up the environment variable RSXOPT, you'll get
an error message 'Can't find rsx387' when you start PacketSorter.
You may look at the file rsxinst.doc for advanced installation
options available for the RSX DOS extender.
PacketSorter v1.4 page 6/19
Under OS/2
----------
Copy emx.dll to \os2\dll
You may look at the file emxinst.doc for advanced installation
options available for the EMX runtime system.
Quick installation for Squish users
-----------------------------------
Follow the instructions for setting up PacketSorter to run as a DPMI,
VCPI or OS/2 client. Make sure that Squish can swap to disk (swap
keyword in squish.cfg).
Copy PKTSORT.EXE in your Squish directory.
Edit the EXTRACT commands in your compress.cfg file:
Insert 'pktsort -s15000 -p500' before each call to an unpacker.
Examples:
OS2 Extract unzip -n %a %f
becomes
OS2 Extract pktsort -s16000 -p500 unzip -n %a %f
OS2 Extract doswrap pkunzip -n %a %f
becomes
OS2 Extract pktsort -s16000 -p500 doswrap pkunzip -n %a %f
DOS Extract pkunzip -n %a %f
becomes
DOS Extract pktsort -s16000 -p500 pkunzip -n %a %f
If your system has less than 2 MB of free memory above the first
megabyte, please read the section about the command line option -w in
this document.
Quick installation for CrossPoint users
---------------------------------------
Follow the instructions for setting up PacketSorter to run as a DPMI
or VCPI client.
Copy PKTSORT.EXE to your CrossPoint directory.
For each Fido-Box you have set up in 'Edit/Boxen' do the following:
PacketSorter v1.4 page 7/19
Select 'Edit/Point' (in 'Edit/Boxen'). In the dialog, change the
'Download-Packer' entry by inserting '\xp\pktsort -s256000 -osubject'
before the call to the packer (this assumes that CrossPoint is
located in \XP).
Example:
pkunzip $DOWNFILE
becomes
\xp\pktsort -s256000 -osubject pkunzip $DOWNFILE
As CrossPoint has no (known) limits to the size of messages that can
be processed, the setting -s256000 will only split messages that
exceed 265000 bytes and all already split messages that are smaller
will be unsplit, so that you get most of the messages back to their
original size.
This is useful if you get Usenet news via a Usenet/Fidonet gateway. A
lot of messages from the Usenet get split at the gateway, especially
large UUENCODED files. Having these messages unsplit to their
original size, you can directly UUDECODE them from within CrossPoint
without unsplitting them manually.
The setting -osubject sorts the messages by subject.
If you want to use different options, refer to the section 'Command
line options' in this document.
If your system has less than 2 MB of free memory above the first
megabyte, please read the section about the command line option -w in
this document.
Quick installation for IMail users
----------------------------------
Follow the instructions for setting up PacketSorter to run as a DPMI
or VCPI client.
Copy PKTSORT.EXE to your IMail directory. Copy the sample
configuration file pktsort.cfg in your IMail directory. You will have
to edit the configuration file in a later step.
Set up the environment variable PKTSORT and specify the configuration
to be used. Best is to include this in your AUTOECEC.BAT like that:
SET PKTSORT=-cc:\imail\pktsort.cfg
Edit the configuration file pktsort.cfg. You will have to set up some
Archiver definitions for the archiver (decompression) programs you
use:
Eg. (add this to the configuration file):
Archiver ARJ c:\tools\arj.exe
PacketSorter v1.4 page 8/19
Archiver ZIP c:\tools\pkunzip.exe
Archiver LHA c:\tools\lha.exe
Archiver GUS c:\tools\gus.exe
Now run Imsetup to change the decompression program settings in the
following way: in each decompression program definition replace the
name of the decompression program by PKTSORT.EXE -eKEY, where KEY is
the abbreviation for the Archiver definition in the configuration
file.
Examples:
ARJ ARJ.EXE e -y
becomes
ARJ PKTSORT.EXE -eARJ e -y
PkZip PkunZip.exe -o -ed
becomes
PkZip PKTSORT.EXE -eZIP -o -ed
You may edit the other settings in pktsort.cfg to fit your needs.
Thanks to Johann H. Addicks for finding out how to set up
PacketSorter in IMail.
Quick installation for FastEcho users
-------------------------------------
Follow the instructions for setting up PacketSorter to run as a DPMI
or VCPI client.
Copy PKTSORT.EXE to your FastEcho directory.
Start FESetup and look which directory is set up as the TEMP-INBOUND
directory for FastEcho. You'll find this setting in the menu
SYSTEM/PATHNAMES/Temp. Inb. If there is no temporary inbound
directory specified, please choose one, because the way installing
PacketSorter for FastEcho is described here will not work without a
temp. inbound directory.
Check the maximum message size you have configured for FastEcho. You
can find the value in SYSTEM/PARAMETERS/MESSAGEBUFFERSIZE. If the
value there is zero, it means a maximum message size of 32000.
Now change to the dialog where the decompession programs are set up.
It's in SYSTEM/DECOMPRESSION PROGRAMS.
Change each decompression program definition in the following way:
preceed each definition with 'PKTSORT.EXE -d -
s'. is the directory you looked up
before. is the maximum message size you looked up
before minus 1000 (for additional SEEN-BYs etc.).
PacketSorter v1.4 page 9/19
Examples:
I assume your temporary inbound directory is c:\fastecho\temp and the
maximum message size is 32000.
The decompression program definitions look like this:
PKZip PkunZip.Exe -o -ed
becomes
PKZip PKTSORT.EXE -dc:\fastecho\temp -s31000 PkunZip.exe -o -ed
LHa LHa.Exe e -m1
becomes
LHa PKTSORT.EXE -dc:\fastecho\temp -s31000 LHa.exe e -m1
ARJ arj e -y
becomes
ARJ PKTSORT.EXE -dc:\fastecho\temp -s31000 arj.exe e -y
Other options to PKTSORT.EXE may be specified before the name of the
decompression program. Example:
ARJ PKTSORT.EXE -dc:\fastecho\temp -s31000 -g3000 -osubject arj.exe
e -y
Another way to specify additional options to PacketSorter is to use a
configuration file. Copy pktsort.cfg into the FastEcho directory and
edit it to your needs.
Installation for users of other tossers
---------------------------------------
PacketSorter needs to be run on inbound packets, i.e. before the
packets are tossed. Usually, inbound packets are received in
compressed form in archives. Many tossers are smart enough to unpack
the archives by calling an uncompression utility which you may
specify in the tosser setup. This is the point where to 'hook' up
PacketSorter: you specify PacketSorter as an uncompression program
and let PacketSorter first call the 'real' uncompression program and
then process the uncompressed packets. This way only packets received
in compressed form will be processed by PacketSorter. If you want to
process packets received uncompressed too, start PacketSorter before
starting the tosser without specifying an archiver. See [program-
with-args] in the 'Command line options' section of this document for
further explaination.
If you don't let your tosser unpack the archives, for example because
you use an archiver shell like GUS before tossing, just run
PacketSorter from the batch file after unpacking the archives.
PacketSorter v1.4 page 10/19
6. Ways of configuration
------------------------
PacketSorter can be configured in three different ways. One is to use
command line parameters, the second is to use an environment variable
and the third is to use a configuration file. Theese three methods can
be combined. If a configuration option is set by more than one method
the following rule determines which one will be used: environment
setting overrides configuration file setting and command line setting
overrides environment setting.
Archiver entries can only be defined in the configuration file.
7. Command line options
-----------------------
Syntax:
pktsort[-c] [-w] [-s] [-p]
[-osubject | -otime] [-l] [-d]
[-g] [-h] [-e [args] | program-with-args]
-c configuration file name
Specify the name of the configuration file. The default is
"pktsort.cfg" which is searched in the current directory. Note that
the current directory is not neccessarily the same as that where
PKTSORT.EXE is located. If you want to be sure that the configuration
file can allways be found, use the full path and filename.
PacketSorter does not complain if the default configuration file
cannot be found, only if a configuration file explicitly specified
with -c cannot be found.
-wnumber of messages to keep in memory
Specify the size of the message window, that is the maximum number of
messages to keep in main memory during defragmentation and
subject/time sorting. If this number is less than the actual number
of messages to process, the messages can only be partially
defragmented or sorted. The default size is 1000. With an average
message size of 1.3 kbytes a maximum of 1.3 MB of main memory would
be used for messages. Do not specify a size that would need more than
your free memory, because your system would then start swapping
memory to disk, yielding very poor performance (this applies both to
DOS and OS/2!). A of 1 means no defragmentation/sorting.
(Un)Splitting messages and packets and removing garbage from packets
still works fine with a of 1.
-s limit in bytes for (un)splitting messages
PacketSorter v1.4 page 11/19
Enable message splitting and unsplitting according to FSC-0047.
Messages larger than are split into smaller parts. Message-id
kludges are stripped from all parts but the first to prevent those
parts to be killed by dupe detection. Messages which are already
split according to FTS-0047 will be unsplit internally and will be
re-split if the size of the unsplit messages exceeds . Incoming
split messages can only be unsplit if all split parts are seen during
a run of PacketSorter. Messages split multiple times, as it is
possible with versions of PacketSorter up to v1.1b, will be unsplit
'recursivly'. The default is no splitting/unsplitting. The minimum
is 8000. Use the maximum message size minus 1000 (for SEEN-BYs
etc.) your system can handle for .
-pmax. number of messages in output packets
Create several smaller output packets instead of one large packet.
is the maximum number of messages to put into one packet. If
a message is split into several parts, these parts count as one
message in this context. The default is 1000.
-otime sort messages by time
Sort messages within the areas by their creation time. This will help
keeping original messages before their replies. The sorting will only
affect as much messages as are kept internally (as specified with
option -w). If not all messages to process are kept internally the
sorting will only be partial.
-osubjectsort messages by subject and time
Sort messages within the areas by their subject. This will help you
to follow echomail threads with your message reader. Messages with
identical subject are sorted by their creation time. Leading 'Re: ',
'Re^2:' etc. in the subject line are ignored while sorting, so that
messages containing a 'Re:' in the subject appear near the messages
with the original subject. Complete sorting is only possible if all
messages to process can be kept internally (see option -w and comment
in option -otime).
Please note: while you may like the messages sorted by their subject,
others may prefer the 'unordered' style. If you have other nodes
linked to your system and sort the messages by subject, be prepared
that one or the other node complains about the new look.
-g remove garbage from packets
PacketSorter v1.4 page 12/19
With this option, PacketSorter will remove garbage from bad packets
instead of refusing to process them. If garbage is removed from a
packet, PacketSorter exactly reports which packet it is, where it
came from and which portions of the packet have been removed. The
original packets may automatically be saved by renaming them to *.bad
(or *.b00, *.b01 etc. if the file already exists) for later
examination. You can control if a "bad" packet is renamed to *.bad by
the value you specify for . If more than bytes of
garbage have been removed from the packet, it will be renamed to
*.bad. Thus, -g0 will rename any packet with removed garbage and -
g999999999 is probably enough to disable renaming completly. So if
you don't care about say 3000 lost bytes, you specify -g3000. If more
than 3000 bytes are removed, you'll have the original packet renamed
for later examination. The valid portions in the packet are processed
in any case, not regarding whether the packet is renamed to *.bad or
not. See section 'Removing garbage from packets' in this document for
further details.
-eselect Archiver entry from cfg file
This option selects an Archiver entry which is defined in the
configuration file. is the key which selects the Archiver
entry from the configuration file. -e must allways be the last
option to PacketSorter. Options following -e will only be seen
by the uncompression program selected. When PacketSorter is defined
as an archiver program in the echomail tosser, usually [program-with-
args] is used to tell PacketSorter which uncompression program to
call before processing packets. Some echomail tossers (like IMail)
strip all paths from their uncompression program definitions, so that
specifying a path to the uncompression program in [program-with-args]
is not possible. One way to get around this would be to specify
[program-with-args] in the PKTSORT environment variable, but this way
only one uncompression program could be specified which is usually
not enough. Using -e, a complete archiver definition can be
retrieved from the configuration file. Options needed by the
uncompression program may follow -e. Here is an example:
Assume you have the following Archiver definition in the
configuration file:
Archiver UNZIP c:\packer\unzip.exe
and the uncompression program definition in the tosser is
unzip -d %a %f
Then you can use
PKTSORT -s15000 -osubject -eUNZIP -d %a %f
-l log file name
Log processing information to . The default is no logging.
PacketSorter v1.4 page 13/19
-d directory where packets are searched
Specify dir as the directory where PacketSorter finds FidoNet packets
to process. Default is the current directory. Be careful if you use
this option. Squish for example will unpack packet files to the
current (Squish) directory. It should not be necessary to use this
option if you let your echomail tosser call PacketSorter (except when
using FastEcho).
-h help
Display a short help.
[program-with-args]exec. archiver before processing
Execute a program (with optional arguments) before processing
packets. Only packets that are created by that program will then be
processed by PacketSorter. If the program returns another code than
zero, PacketSorter will not process packets. The program will usually
be an archives extraction program like unzip. You can let your
echomail tosser call PacketSorter by specifiying PKTSORT as your
archives extractor and using the actual archives processor (with
options) as program-with-args. See "Quick installation for Squish
users" for examples. If program-with-args is not specified,
PacketSorter will process all FTS-0001 packets it finds in the
current directory or that one specified by -d. This is useful if you
receive uncompressed packets and run PacketSorter from a batch file
before calling the tosser. See also option -e.
8. Setting the options via an environment variable
--------------------------------------------------
You may specifiy the options for PacketSorter in the environment
variable PKTSORT. This is useful if you run PacketSorter from an
archiver entry of an echomail processor and the entry field size is too
short to include all options you would like to specify. The format and
syntax is the same as if the options are given at the command-line. If
you specify the options via the environment *and* the command line, the
command line options will overwrite the options specified in the
environment, as long as [program-with-args] is not specified in the
environment. If [program-with-args] is specified in the environment,
all command line option are treated as additional parameters for
[program-with-args].
Example:
SET PKTSORT=-s15000 -lc:\logs\pktsort.log
pktsort unzip -n %a %f
PacketSorter v1.4 page 14/19
is the same as
pktsort -s15000 -lc:\logs\pktsort.log unzip -n %a %f
9. Setting the options via a configuration file
-----------------------------------------------
The configuration file consits of lines starting with a keyword
followed by a value. All lines not starting with a keyword are
considered comments. Keywords never start with a semicolon and it is
good style to preceed comment lines with a semicolon.
There is a 1-to-1 correspondence between the command line options and
the keywords in the configuration file, so I just present a list of the
keywords with the corresponding command line option instead of
repeating all the information contained in the section 'Command line
options'.
Keyword command line option possible values
------- ------------------- ---------------
MessageWindowSize -w 1 - 4294967295
SplitMessages -s 8000 - 4294967295
SplitPackets -p 1 - 4294967295
SortMessagesBy -o Subject or Time
RemoveGarbage -g 0 - 4294967295
LogFile -l any valid path\file
PacketDirectory -d any valid directory
DefaultArchiver -e any valid Archiver entry
key
The keyword "Archiver" has no corresponding command line option. An
Archiver entry (definition) in the configuration file looks like this:
Archiver KEY path-and-filename
eg.
Archiver UNZIP c:\packer\unzip.exe
There may be as many Archiver definitions as you like. See option -e
for details.
The file 'pktsort.cfg' is a sample configuration file.
10. Packets recognized and created
----------------------------------
PacketSorter will process those packets that have the filename
extension .pkt and that have a valid packet id in the packet header.
PacketSorter v1.4 page 15/19
PacketSorter merges all packets that originate from the same node or
point and contain the same password. The name of the packets created
will be of the form ????????.PKT, where ???????? is the creation time
according to FSC-0015.
PacketSorter uses a hashing technique to perform the defragmentation.
So there is no 'real' sorting done and the defragmented areas are
unordered. The order of the messages within an area remains unchanged,
unless the options -otime or -osubject are used.
11. Return codes
----------------
PacketSorter returns the return code of the program executed (program-
with-args) or zero. If PacketSorter encounters any problem, the
original packets are retained and the tosser may try to toss the
undefragmented packets.
12. Disk space consumption
--------------------------
PacketSorter needs exactly as much additional disk space as is
occupied by the packets to process. This is needed because of security
reasons.
13. Removing garbage from packets
---------------------------------
This section is for those who want to understand how garbage is removed
from packets by PacketSorter in detail.
A (proper) FidoNet FTS-0001 packet consists of a packet header, zero or
more packed messages and an end-of-packet marker. The packet header is
identified by a packet ID and is not of real interest here, because
PacketSorter does not process packets with an invalid packet header.
The packed messages consist of a packed message header and four zero-
terminated strings which contain the originator name, the destination
name, the subject and the message text. The packed message header is
identified by a packed message ID.
Without specifying -g, PacketSorter considers those messages as
being valid, that have a correct packed message ID, a correctly sized
date field (non-FTS one-space format is corrected on the fly without
notification) and the from-name, to-name and subject not longer than
FTS-0001 allows. The message ID is the first two bytes of a packed
message. If a previous message is not properly terminated, i.e. there
are some extra bytes following the last of the four strings, the
correct message ID cannot be detected and you'll get the error message
'invalid packed message header, skipping packets from...'.
PacketSorter v1.4 page 16/19
Now, if -g is specified, PacketSorter tries to repair a grunged
date field and truncates too long from-name, to-name and subject. If
one of these is truncated, from-name, to-name and subject must not be
empty and the message text must be longer than one byte, else the
message will be deleted. If this fails, PacketSorter skips bytes in the
packet until a vaild packed message header is found. If the next
(potential) message is found this way, PacketSorter is a bit more
restrictive as to the contents of this message, because I don't want
PacketSorter to turn "real garbage" into messages. The message must
start with a packed message ID (of course), contain a valid date/time
field (one or two spaces format) and the lengths of the first three
strings must conform to FTS-0001. If one of these criteria is not met,
PacketSorter continues skipping bytes in search for the next (proper)
message.
Grunged date repair goes like that: If it is one-space format, it will
be corrected to two-space format. If it is shorter than one-space
format + 2, longer than 6 characters and is accepted by the regular
expression [0-9A-Za-z:.- ]+ it will be replaced by 1-1-80. If it is
longer than two-space format it is considered uncorrectable and the
message will be invalid.
Additionally, PacketSorter continues searching for messages beyond the
end of packet marker if the physical end of the file is not yet
reached. In this case, the end of packet marker is just treated as
"garbage". This has a recovery effect because other software might stop
processing messages beyond the end of packet marker, thus losing
messages.
A missing end of packet marker at the physical end of the file (i.e.
because the packet has been truncated) will be ingnored.
Messages that passed PacketSorter but contain other "dangerous" data,
such as missing or too long origin lines or non ASCII characters in the
message text may still confuse other software. If you want additional
protection against such messages, you could run GMD (which is great) on
the packets before or after they have been processed by PacketSorter.
14. Technology
--------------
PacketSorter is written in C++ and compiled with GNU GCC. Runtime
system is EMX for XMS and VCPI operation and RSX for operation as a
DPMI client. PacketSorter runs both under OS/2 and DOS in 32-BIT flat
memory model.
15. What is different in the registered version
-----------------------------------------------
The unregistered version says that it is unregistered and it beeps
between 20:00 and 20:59. The registered version does not do this.
PacketSorter v1.4 page 17/19
16. Other operating systems
---------------------------
PacketSorter might be used on other operating systems than DOS and
OS/2, as long as they run on an i386 (or higher). If you choose to go
that way you are probably on your own, as several questions may arise I
cannot answer (eg. how do I call a native MS-Windows program from
within Squish running in MS-Windows DOS emulation).
Also note that you must not distribute PacketSorter in another form as
in the original distribution archives. If you come up with
PacketSorter for another opertating system, you may use it only for
your own purposes.
native MS-Windows
If you'd like to run PacketSorter as a native MS-Windows application
(rather than in Windows' DOS emulation) get the archives named
rsxwin2a.zip from the FTP-server ftp.uni-bielefeld.de in the
directory /pub/systems/msdos/misc. RSXWIN is free software by Rainer
Schnittker.
Follow the instructions contained in that archives to make
PacketSorter run as a native MS-Windows application. (Simply execute
'RSXWIN.EXE -e PKTSORT.EXE [options]'.) When I tried it, it seemed to
work pretty good.
Linux/Unix/Nextstep
If you are a programmer: the distribution archives contain the files
needed to link the PacketSorter executable (except for some FSF
libraries) in the sub-archives devobj.zip. Maybe you are able to link
the .o files under Linux or other operating systems using an i386. I
never tried this, but if you do, I'd be interested in hearing about
your experiences.
17. Author
----------
The autor of PacketSorter is Rolf K. Wilms. He may be contacted via
Fidonet: Rolf Wilms@2:2447/107.8
or
Rolf Wilms@2:2445/10.9 (R24-Classic)
Internet: rwilms@kottan.bo.open.de
Fido via Internet:
Write a netmail to UUCP@1:105/42
PacketSorter v1.4 page 18/19
and make the following line the FIRST line in
the message text:
to: rwilms@kottan.bo.open.de
Mail: Rolf K. Wilms,
Franziskastr. 44a,
45131 Essen,
Germany
Comments and bug reports are welcome.
18. Contents of the distribution archives
-----------------------------------------
The original distribution archives of PacketSorter contains the
following files:
pktsort.doc this file
license.doc PacketSorter copying and usage license
order.frm how to get your registration key
pktsort.exe PacketSorter executable for DOS and OS/2
register.exe program that turns PKTSORT.EXE into the
registered version (you need a 'key', see
license.doc and order.frm)
pktsort.cfg sample configuration file
emx.exe EMX runtime module for DOS
emx.dll EMX runtime module for OS/2
emxrt.doc Advanced installation information for EMX
rsx.exe DPMI compliant DOS-extender
file_id.diz a small description of PacketSorter
desc.sdi an even smaller description of PacketSorter
history.doc what has been done
upgrade.doc upgrading PacketSorter from earlier versions
devobj.zip contains the files needed to link a new
PKTSORT executable
otherlic.zip contains licenses of the free software used by
or aggregated with PacketSorter.
The sub archives otherlic.zip contain the following files:
copying GNU General Public License
copying.lib GNU General Public Library License
copying.emx EMX Copying License
copying.rsx RSX Copying License
The sub archives devobj.zip contain the following files:
hash.o, makefile.pst, mkkey.o, offset.cc, pktsort.o, readme.dev,
reginfo.h, register.cc
PacketSorter v1.4 page 19/19
19. Thanks
----------
Thanks to Peter Scheffer, Peter Kaszanics, Robert Dahlem and Johann H.