

          ----------------------------------------------------------
          SqaFix: The Squish Area Fix for DOS, Win32 and OS2 systems
          ----------------------------------------------------------


                 SqaFix v0.99 (beta) Release Notes
                 ---------------------------------

  This readme file contains some information you hopefully will find
useful while operating this program. See the sample SqaFix.Cfg file
comments for the details of the configuration file syntax and SqaFix.Use
for the description of the remote requests to SqaFix.


                           Overview
                           --------

  SqaFix (stands for Squish Area Fix) is a companion program for
popular Squish Echo Mail processor by Scott Dudley.

  SqaFix is a companion program for popular Squish Echo Mail processor 
by Scott Dudley. It provides standard AreaFix functionality which is 
missing in the Squish itself. In addition, it helps you to manage 
your echomail links locally.

  SqaFix's remote mode allows your downlinks to manage their links to 
your node's echo areas (according to the rules you set up) by sending 
NetMail requests. 

  SqaFix's unique Autocreate mode allows automatic creation of new areas
when they are received from your uplinks. Uplink request forwarding, 
idle pass through area management, moderated area rules delivery and 
other advanced features are also available.

  SqaFix's manual mode allows you to carry out some common area management
tasks locally while the remote mode allows your downlinks to manage their
links to your node's echo areas according to the rules you set up. Special
Autocreate mode allows automagic creation of new areas (when received from
your uplinks) and Maintenance mode is intended to run some maintenance tasks
to keep your areas in order.

  In the Manual mode you start a program from a command line specifying
a command to carry out ('Link', 'Unlink', 'List', etc.), a node address
to be subject of an operation and list of areas or groups of areas to
specify the operation scope. SqaFix will carry out the requested command
and possibly update Squish and/or SqaFix configuration files displaying
all its activities on the screen. You can also send protocol of the manual
operations to the node which was subject of the operation using '-m'
command line switch.

  When started with the 'Scan' command line parameter (usually in unattended
mode from a batch file), the program acts as a mail robot processing remote
requests in NetMail messages addressed to SqaFix and possibly updating Squish
and/or SqaFix configuration files. Report is sent back to the requesting node
and all the changes made are loggin in the log file.

  When started with the 'Autocreate' command line parameter (also in
unattended mode in most cases), the program scans the Squish BadArea folder
and automatically creates new areas at your system.
See 'Area Autocreate Feature' section below for details.

  When started with the 'Maint' command line parameter, the program
executes certain tasks for every known area. See 'Maintenance Mode'
section below for details.


                           Areas and Groups
                           ----------------

  Areas are described in EchoArea keywords in both Squish.Cfg and SqaFix.Cfg
While using a standard Squish EchoArea keyword format in Squish.Cfg, SqaFix
keeps additional information about the echo area in its own configuration file.
This information includes area description, group, additional flags and the
list of passive links for this area.

  For every particular node each area can be in one of the following states:

        Unlinked    - the node is not receiving the area, it is NOT
                    listed in the 'EchoArea' line for this area both
                    in Squish and SqaFix config files

        Active      - the node is receiving the area, node is listed
                    'EchoArea' line for this area in Squish config file

        Passive     - the node is temporarily unlinked from this area.
                    The node is listed in the 'EchoArea' line for this
                    area in SqaFix config file for this area, but NOT
                    in Squish config file.

        Restricted  - the node is not allowed to change its status for this
                    area. This means that whatever sysop set in any of the
                    config files can't be changed by node's remote requests.


  Every echo area belongs to one of the echo area groups. The group concept
is used to control access to echo mail areas and to select specific sets of
echoareas available at your system. Each group is identified by a unique
character in range A...Z, so there are maximum 26 groups. Usually areas are
grouped by echomail topic or networks they belongs to, however sysop can
choose any other logical way to group areas.

  In order to link or unlink an area or even to see it in the available areas
list, the node should have this area group listed in its 'Node' keyword in
SqaFix.Cfg. If this is not the case, the sysop can still link the node
manually (by editing EchoArea links in Squish.Cfg) and the node will receive
an echo, but it will not be able to control its link to it. This feature
allows you to force nodes to receive some areas.

  Another way to control node access to echomail ares is by means of
the node and area access levels, which are numeric values in range 0 - 65535.
In order to have access to a particular area, node has to have its access
level equal or higher than the area access level. This is useful when you
need to limit access to certain areas without changing your groups setup.
For example, you have areas logically grouped by the networks they belong to,
however, you need to limit access to some XXX echoareas for persons under 18
years old.

  SqaFix also supports Squish readonly areas feature so you can allow your
downlinks to receive messages but not post new messages in a particular
area(s).


                        Techie's stuff
                        --------------

  System requirements real mode DOS version are pretty regular:
about 300Kb of RAM, DOS 3.30 and higher, FidoNet(tm) compatible mailer
and SquishMail v1.xx echomail processor.

  The DPMI protected mode version (SqaFixX.Exe) requires the external
DPMI server to be available. QuarterDesk QDPMI 1.01 + QEMM 6.02,
Borland DPMIRES.EXE, OS/2 2.xx/3.xx DosBox (Settings/DPMI_SERVICES=Enabled),
MS Windows 3.x Enhanced Mode DosBox, Windows'95 and Windows'NT 3.xx/4.xx
are known to work fine.

  The OS/2 version (SqaFixP.Exe) is a 16-bit executable and thus
runs under OS/2 v1.2 and higher. It was extensively tested in-house under
OS/2 v1.3, 2.xx and v3.xx.

  The Win32 version (SqaFixW.exe) is native Win32 application which runs
on Windows 9x, Windows NT and Windows 2000 operating systems.



                         Installation
                         ------------

  Edit the SqaFix.Cfg to match your Squish configuration and run
the program from time to time when your need to update echo links or
when new mail is received. See sample batch file snippets in the
'Area Autocreate Feature'.

  If you already have working Squish.Cfg it's run SqaFix Sync command
to automatically create all existing echoarea definitions in SqaFix.Cfg.
It's a good idea to set new area creation rules (NewArea...) and area
description file specifications (AreaDescr...) beforhand so that EchoArea
lines in SqaFix.Cfg will have desired groups and descriptions.

  Keep in mind a few things:

        - Since SqaFix config file parser uses a one pass engine,
          it's strongly recommended to keep the keywords exactly
          in the same order as they appear in the sample SqaFix.Cfg
          file.

        - All the echo areas described in the SqaFix config should
          be also described in the Squish config file and vice versa.

        - The primary address specified for the Squish and SqaFix
          should be the same.  This is because both programs store
          the linked node addresses in the abbreviated form based
          on the previous address specification.

        - If you want to use areas autocreate feature make sure to
          set +A flag to those nodes which are allowed to create
          new areas.

        - SqaFix expects to find its configuration file SqaFix.Cfg
          in the current directory first and in the directory where
          the program was started from second. The SQUISH environment
          variable may be used to specify the location of the Squish
          configuration file. In this case SqaFix assumes that the
          SqaFix.Cfg file is in the same directory as Squish config
          file specified in the environment. Note that this setting
          overrides specification in the 'SquishCfg' line of SqaFix
          config file. In any case, the -c and -s command line
          switches override everything.


                        Command line options
                        --------------------

  Usage:    SqaFix <command> <netaddr> [options] [area(s)]

  Commands:

           Scan         - scan the netmail folder for remote requests and
                        process them sending back a report.

           Autocreate   - scan the BadArea folder and automatically
                        create the new areas, provided the originating
                        node has rights to do this.

           Link,Add     - link node the to specified areas or groups
                        of areas

           Delete,UnLink- unlink node from specified areas or groups
                        of areas

           Passive      - temporarily unlink the node areas or groups.
                        This is basically the same thing as 'Delete',
                        but the list of areas which were made 'Passive'
                        can be recalled later with an 'Active' command.

           Active       - relink the node to passive areas or groups.

           List         - list status of all the areas available to node.

           Linked,Query - list status of all the linked areas for a node.

           Unlinked     - list all the unlinked/passive areas for a node.

           Help         - send the usage help information file to a node.

           Rules        - send the area rule information file to a node.

           Notify       - send a list of active/available areas to all
                        the known (i.e. defined in SqaFix.Cfg) nodes

           Report       - send a list of all existing links to the
                        specified node address.

           ReLink       - send an AreaFix link area request to the specified
                        uplink address for all existing areas linked to
                        this uplink and matching given area mask.

           ReFreq       - send an AreaFix link area request to the specified
                        uplink address for all areas currently present in the
                        forwarded requests queue for this uplink and matching
                        given area mask.

           ReKill       - send an AreaFix unlink area request to the specified
                        uplink address for all areas currently present in the
                        killed idle area queue for this uplink and matching
                        given area mask.

           Maint        - run the maintenance tasks: in this mode SqaFix
                        will set MaxMsg/SkipMsg/KeepDays to match the
                        ones specified in Squish.Cfg and execute all
                        programs specified in the command line for
                        every known area.

           Sync         - Sync Squish and SqaFix EchoArea lines. If some
                        area definition is absent in oen of the config files,
                        it is added to it according to all the new area
                        creation rules.

  Options:

           /g<...>   - limit the operation scope to these groups

           /*        - use all available groups as the operation arena

           /o        - override all the area access restrictions

           /b<nn>    - working buffer size in kilobytes (1-64).
                     Size of this buffer limits max config line length
                     and size of the report message parts.
                     Default value is 8Kb in DOS and DPMI versions and
                     16Kb in Win32 and OS/2 versions.

           /m        - report by sending a message to the node.  When
                     you're managing a node echo links in a manual
                     mode you can send the protocol to this node
                     sysop. Also this switch is required for the
                     NOTIFY and REPORT operations unless you want
                     them to run in test mode.

           /n        - suppress force area creation node flags

           /f        - suppress linkup requests forwarding

           /v        - verbose mode, displays text of all messages sent

           /e        - disable internal critical error handler. Normally
                     the program traps all the hard errors and fails
                     the operation.  If you want to be able to retry
                     the operation answering the 'Abort, Retry, Ignore'
                     or some sort of an automatic critical situation
                     handler then use this switch. DOS version only.

           /u      - intentionally update the config files. Normally,
                     the program will update only those 'EchoMail'
                     lines which have the linked node list changed.
                     If you'd like to have all your 'EchoMail' lines
                     formatted with the same style, run program once
                     using this switch.

           /x      - run in test mode. This causes SqaFix not to
                     dismiss processed remote requests and not to
                     update configuration files. The program works
                     as it would normally do, but the config files
                     are not updated (however the updated copies are
                     saved in *.$$$ files) and the remote request
                     messages are not marked as processed or deleted.
                     If you specify this switch in upper case the
                     queue file will not be updated as well.
                     Use this switch _only_ for troubleshooting...

           /s<fname> - override Squish config file name, default ext is *.CFG

           /c<fname> - override SqaFix config file name, default ext is *.CFG

           /l<fname> - override SqaFix log file name, default ext is *.LOG


  Note that unlike Squish, SqaFix accepts only one command line command,
so please do not run 'SqaFix Scan Autocreate', this would not work!

  For Add, Delete, Passive and Active commands you can use grep-like
text masks to specify a set of areas to work on. The following
symbols are treated specially:

            *        - match zero or more characters
            ?        - match any character
            \        - literally match the next character
            [ae0-9]  - match a,e and 0 thru 9
            [^ae0-9] - match anything but a,e and 0 thru 9


  Examples: SqaFix Scan -v -b32 -lC:\\SQUISH\\SqaFix.LOG
            SqaFix Add 2:5020/6 -m -gABCD MUFFIN TUB ENET SU.*


                          SqaFix exit codes
                          -----------------

  The program terminates with one of the following exit codes:

        0       -- everything's fine, no messages generated.

        1       -- everything's fine and some messages were generated,
                   time to trigger your mailer netmail folder rescan.

        2       -- everything's fine and some areas got rescanned or created,
                   time to run 'Squish Out Pack'.

        3       -- combined (1) and (2), trigger rescan netmail and run
                   'Squish In Out Pack' or something like that...

        255     -- something nasty happened: wrong configuration files,
                   insufficient memory, missing or unreadable files,
                   system integrity lost, the President got killed, etc.


                       Area Autocreate Feature
                       -----------------------

  During the 'SqaFix Autocreate' run the program scans the BadArea folder
defined in the Squish.Cfg. By default, Squish places there messages which
for some reason could not be tossed. SqaFix checks messages with the ^aAREA:
kludge specifying the area which does not exist at this system and if found,
determines the node this message was last exported from. If this node is
defined in SqaFix.Cfg and has the +A (allow autocreate) flag set, SqaFix
generates the unique file name for this new area using the method specified
in 'NewAreaPath' keyword, assigns all other new area properties (defined in
other 'NewArea...' keywords) and creates the new area, updating the Squish
and SqaFix config files. Note that you can control newarea properties on
per node or area tag mask basis by means of 'NewArea... ={addr|areamask} ...'
specifications.

  Next time Squish tosses messages it will scan the BadArea folder and
move all the appropriate messages in the newly created areas.  In order this
to work you MUST uncomment 'TossBadMsgs' line in the Squish.Cfg

  Sample batch file snippet to make this all work looks like this:

        Squish In Out Link Pack         ; toss new packets
        SqaFix Autocreate               ; check badarea and autocreate
        if not errorlevel 2 goto EXIT
        Squish In Out Link Pack         ; toss badarea
       :EXIT

  Of course, you can omit the secondary run of Squish right after
the 'SqaFix Autocreate' and the messages will be tossed from the BadArea
folder to the newly created areas during the next time Squish is run
with the 'In' parameter, but this will somewhat delay things. If your
system tosses messages often enough this is not a big problem.

  In order to determine the node the echomail message in BadArea folder
was last exported from, SqaFix scans the PATH kludge. Sine the PATH
addresses contain only <net/node> info, a bit kludgy trick is used to
determine zone: all the nodes allowed to create new areas are scanned
for a <net/node> match and if one (and only one!) is found, this node
is assumed to be the one which creates the new area. This presents
a problem if you have two autocreating nodes with identical <net/node>,
but in two different zones. Avoid this...

  4D point addresses are also not stored in the PATH kludge and as the
result 4D points can not trigger the new area creation process. Probably
this can be done by the fakenet points but this was not tested since
I hate the fakenet way of doing things ;-)

  One last note: make sure that all the nodes which you want to be able
to autocreate areas at your system have the +A flag set in the 'Node'
keyword of the SqaFix.Cfg -- over the years I had thousands messages
sent to me asking 'why the hell autocreation does not work' and most
of the problems were tracked down to this flag missing.


                       Area description files
                       ----------------------

  When creating new areas and generating list of areas available at uplinks,
SqaFix uses area descriptions provided in area description files to pick up
a description for a particular area tag.

  Such area description files are published for most well kept echo backbone
structures. Currently the following area description file formats are
supported:

        NA: each line contains area tag, followed by any number of spaces,
        then goes area description:

        <areatag><space><area description>

        ... see sample files BACKBONE.NA for more details.

        DZ: each line contains comma separated list of area parameters:

        [Status], Tag, Comment, Moderator's Name, Address,[Flags]

        ... see sample files ECHO5020.LST for more details. Only the Tag and
        Comment fields area parsed in this format.


  Note that when SqaFix looks for description of a particular area,
it first scans the area descriptions list looking for an exact match and,
if not found, scans the same list again matching areatag specifications in
the list as grep-like masks. So, for example, if you have the following in
your area descriptions list:

        PK.*            Pete Kvitek's Echoes
        PK.SQAFIX       SqaFix discussion echo

... "Pete Kvitek's Echoes" will be used for all PK.* echos but
"SqaFix discussion echo" will be choosen for PK.SQAFIX.


                       Forward request feature
                       -----------------------

  Starting with v0.98 SqaFix supports remote request forwarding, that is,
if downlink wants to link itself to some area which does not exist at your
system, but may be present at your uplink node, you can set up SqaFix so
that AreaFix linkup request will be automatically generated for you uplink
node and the requesting downlink node will be queued.

  Unlike other areamanagers, SqaFix doesn't create and link the area when
the request to it is forwarded to an uplink node. Instead, it waits for
the requested area to be autocreated at your system by an uplink node
and then links up the downlink which requested this area.

  When any new area is autocreated by an uplink node, it's areatag
is checked against the queued forwarded requests and if found, all the
listed downlink nodes are linked up to this newly created area.
Such areas are normally created as passthru (with Squish -0 area flag),
however you can use ForwardRequestKeepAreas masks and +N uplink and node,
flags to prevent this.

  When deciding to which uplink forward the request to, SqaFix scans
all the uplink nodes defined in the 'UpLink' keywords with access level equal
or higher requesting node access level looking for the grep-like areamask
matching the requested area and uses the first matching uplink found.

  Before forwarding request to an area (or showing it in the available
area list), SqaFix checks if the requesting node has sufficient access
level and is allowed to control this area's group. Since such area doesn't
exist at your system, its access level is the same as the choosen uplink
access level and group is determinted from the NewAreaGroup specifications.

  Uplink areamask lists may be specified in-line or in reference files,
so you have pretty flexible control of which areas requests will be forwarded
to which uplink. For example, if you want a 'strict' forwarding, just specify
a file with a list of all areas available at the given uplink in the first
column. Normally you'll get this file from your uplink:

        UpLink 2:34/56 AreaFix @3456Echo.lst

  ... and only those areas listed in 3456Echo.lst will be forwarded
  to 2:34/56.

  Alternatively, you can have a 'fuzzy' forwarding system if you specify
grep-like masks (in-line or in a reference file), like, for example:

        UpLink 2:34/56 AreaFix SU.* RU.*
        UpLink 2:34/99 -l10 AreaFix *

  ... here areas starting with SU.* or RU.* will be requested from 2:34/56,
and all others will requested from 2:34/99, provided requesting node has
access level >= 10.

  You can mix in-line areamasks and reference files. Areamasks within
reference files are also valid, but nested reference files are not supported.

  The 'ForwardRequestTimeout' keyword in the SqaFix.Cfg file specifies
amount of days the system will wait until the requested area is autocreated.
When this time-out expires, SqaFix will send an unlink request to the uplink
node (just in case the area was actually linked, but there were no messages
posted in this area during the time-out period, so it wasn't autocreated) and
notify all the queued downlink nodes.

  The optional second parameter of 'ForwardRequestTimeout' keyword
specifies amount of days _before_ the forwarded request expiration time to
send warnings to all nodes/areas listed in 'ForwardRequestNotify' keyword.
When receiving such warning you may want to manually modify the 'freq' queue
file entry for this area to extend the time-out period. The queue file format
is described below.


                       Linking your own system
                       -----------------------

  There is a special case related to request forwarding when SqaFix receives
request to link or unlink one of your AKAs. Suppose you run SqaFix with the
following command:

        SqaFix Link <your_aka> GOODECHO

If area GOODECHO is not present at your system, SqaFix will send an AreaFix
linkup request to an appropriate uplink just like it would do for a downlink
node, but it will not make this echo passthru since your aka is present in
the requesting nodes list.

Also, if your system has GOODECHO, but it's currently in passthru mode, when
linking one of your AKAs to this echo, SqaFix will reset its passthru status.
When unlinking one of your AKAs from such echo, SqaFix will assign passthru
status back.

Obviously, if you want all this to work, you need to create a 'Node' keyword
for any AKA you will link or unlink.


                       Idle passthru areas
                       -------------------

  Starting with v0.98 SqaFix supports idle passthru areas maintenance.
Idle passthru areas are those areas, which have -0 Squish flag specified and
have one and only one link, which is assumed to be an uplink. In conjunction
with forwarded request feature, the idle passthru maintenance provides great
way to allow your downlinks to receive uplink's areas you don't need and
still keep the traffic low avoiding transfer of unused echoes.

  The 'IdlePassthruTimeout' keyword in the SqaFix.Cfg file specifies
amount of days the system will wait from the moment the idle passthru area
was detected before it will be deleted. When this time-out expires, SqaFix
will send an unlink request to the uplink node and delete the idle passthru
area according to the rules specified by 'PreserveDestroyedArea' keyword.

  The optional second parameter of 'IdlePassthruTimeout' keyword specifies
amount of days _before_ the idle passthru area will be destroyed when to send
warnings to nodes/areas listed in 'IdlePassthruNotify' keyword.
When receiving such warning you may want to manually modify the 'idle' queue
file entry for this area to extend the time-out period. The queue file format
is described below.

  The optional third parameter of  'IdlePassthruTimeout' keyword specifies
amount of days _after_ the idle passthru area was destroyed to prevent
autocreation of an area with the same areatag. The idea here is to cope with
leftover echomail messages in BadArea folder if your uplink system is slow
to respond. Set this at least to the amount of days specified in -$d Squish
flag for BadArea.


                       AreaFix requests
                       ----------------

  When sending link or unlink requests to an uplink's AreaFix, SqaFix
uses either the standard AreaFix protocol with password in the subject line
and area name in the message body, creating messages internally or spawns
a program or batch file with a predefined set of parameters which is supposed
to format and send AreaFix request. The sample batch file for some UNIX-based
AreaFix called 'gup 0.3' is included along with the general purpose message
sending utility SendMsg in SMSG_*.ZIP. This allows maximum flexibility for
the AreaFix request format.


                       Queue File Format
                       -----------------

  The queue file is a plain ASCII text file which contains the SqaFix
queue entries on every line in the following format:

        <areatag> <type> <queued_time> <expiration_time> [node_list]

Where:  <areatag>         - areatag of the area referenced by this queue
                          entry

        <type>            - type of the queue entry, which may be one of the
                          following:

                          freq  - forwarded uplink request
                          idle  - idle passthru area
                          kill  - destroyed idle passthru area

                          If queue entry type is specified in upper case, this
                          means that the appropriate warning notifications
                          were sent out.

        <queued_time>     - specifies time when this entry was queued

        <expiration_time> - specifies time when this entry will be expired
                          and the appropriate action taken

        [node_list]       - node address list ('freq' entry only).
                          The first address is the address of an uplink node
                          this request was forwarded to. All the subsequent
                          addresses are the downlink nodes which requested
                          this area in order of appearance.

  The queue file is read and processed every time SqaFix is started and
is updated when it finishes, being locked throughout the program execution
time. This ensures consistency between runs.

  You can modify the queue file entries manually if you understand
exactly what you're doing. Usually you would want to change the queue entry
expiration time (keep in mind that it has to be past the entry queued time)
or the notification warning status (upper/lower case of entry type).

  If you're modifying the list of nodes for freq entry, make sure the
uplink address goes first and it's listed in one of the 'UpLink' keywords,
and each of the downlink nodes is listed on 'Node' keywords.

  If an area in forwarded request queue exists (being created manually
or by any other means), the freq queue entry will be automatically deleted
and all the listed downlink nodes will be linked to this existing area,
unless they're already there.

  If an area in idle passthru queue does not exist (deleted manually
or by any other means) or it's not an idle or passthru anymore, the idle
queue entry will be automatically deleted.

  If an area in the kill autocreate queue does exists (created manually
or by any other means), the kill queue entry will be automatically deleted.


                       Maintenance Mode
                       ----------------

  The Maintenance Mode is started with 'SqaFix Maint' command. In this
mode SqaFix will go through all the known areas and:

        - update the MaxMsg/SkipMsg/KeepDays setting to the ones specified
        in Squish.Cfg -$m, -$s, -$d echo area flags. Unfortunately Squish
        doesn't do this on its own, so this settings get out of sync and
        one has to run SqSet.Exe manually.

        - execute all programs specified on the command line with the
        predefined set of parameters:

                %1 - area tag
                %2 - area path
                %3 - area type ('Squish' or 'Msg')
                %4 - passthru status ('PassThru' or 'NotPassThru')

  The sample ChkBase.Bat, supplied with the package, uses standard SqInfo and
SqFix utilities to check and fix the area message base if necessary.

  Note that you can have more than one program specified in the maintenance
command line, for example:

        SqaFix Maint ChkBase.Bat ChkThis.Bat FixThat.Bat

... all the listed programs will be executed for every known area.


                       Remote Rescan Requests
                       ----------------------

  The Remote Rescan Request feature implemented using the standard
'Squish Rescan <area> <node>' mode.  When receiving the %RESCAN command,
SqaFix checks if the originating node is allowed to make rescans and the
area itself is allowed to be rescanned, and spawns the command specified
in 'RescanCommand' keyword in the SqaFix.Cfg appending areatag and node
address.

  Hopefully this is a cleanest way to do rescans -- using the method
provided by Scott Dudley ;-)  The only drawback is that the rescanned
messages will be packed and sent only during the next 'Squish Out Pack'
run, but that should not be a major problem in most circumstances.


                        Archiver change requests
                        ------------------------

There is a certain problem related to arciver change support: when adding
new packets to an existing bundle, Squish does not check if this existing
bundle was compressed using the same archiver as the one which is going to
be used for adding new packets. Squish relies on an archiver being able to
detect if the target file has proper type and return error condition if no,
in which case Squish will return new packet to its OUT.SQ directory where
they will be processed later after the bundles packed with the old archiver
area gone.

This would not be a problem if all the existing bundles are sent to the node
before processing the %COMPRESS request, however, if this is not the case,
one has to make sure that all archivers listed in 'AllowPackerRequest'
keyword can detect other's target archives and return nonzero exit code
without touching target archive.

The following popular archivers were tested:

PKZIP 2.04g     ok with ARJ/RAR/LHA/ZOO
ARJ   2.41      ok with ZIP/RAR/LHA/ZOO
RAR   2.00      ok with ZIP/ARJ/LHA/ZOO
ZOO   2.1       ok with ZIP/ARJ/RAR/LHA
LHA   2.10      problems with ZIP/ARJ/RAR/ZOO

So it appears that PKZIP, ARJ, RAR and ZOO are safe to be listed in
'AllowPackerRequest' keyword and LHA, at least of the version 2.10, is not.



                              Credits
                              -------

  First and foremost I'd like to thank Scott Dudley for his excellent
Message API toolkit.  Without it I'd never convince myself to go to the low
end message handling.  The Squish message base on its own and the Squish
Echo Mail processor are excellent! Thanks, Scott, keep up the good work!!!

  Following works had great impact on the design of this SqaFix.
Actually it was just modelled after the area management features of:

                Areafix, by Greg Dawson and George Peace
                RA-Echo v.1.00, by Roger Kirchhoff & Stefan Graf
                TosScan(Tm), by Joaquim Homrighausen
                GEcho, by Gerard J. van der Land
                IMAIL, by Fabiano Fabris

  And the last, but not the least -- thank you all who sent comments
and suggestions and my beta team for your time and efforts for making this
thing run smooth and stable. Can't list you all here, but some very
special thanks go to:

        Sergej Qkowlew (2:5020/122)
        Victor Butry (2:5070/25)
        Kirill Lebedev (2:5020/251)
        Konstatnti Gilyov (2:5000/72)
        Olivier Collard (2:293/3219)
        Uwe Loyal (2:2490/1025)

... and to:

        Alex Litvin (2:5020/783.10) -- the lead tester!


                              Licence
                              -------

  This software is provided as is, in no case Pete Kvitek, JV Dialogue
or any of Pete Kvitek's companies, may be held responsible for any damages
it can produce, directly or indirectly.  If it breaks your office apart,
you own both parts. That's it... you've been warned!

  COMMERCIAL distribution and/or use of this program and the supplied
materials is PROHIBITED without written permission of Pete Kvitek.

  You are a COMMERCIAL user if you make a profit from running your
FidoNet(tm) system, or if it is being run by (or for) a corporation,
government, company, foundation, or any other organization.

  NONCOMMERCIAL distribution is permitted under the following terms:

  - You may copy and distribute this program and supplied materials
  in an UNMODIFIED form only. You may charge a distribution fee for
  the physical act of transferring a copy, but no more than necessary
  to recover your actual transfer costs.

  - You may not incorporate all or any part of this program and
  supplied materials into a package which is not completely free
  for all noncommercial users and without prior written permission
  of Pete Kvitek.

  The privileges to use are granted only to NONCOMMERCIAL users, which
are running SqaFix as a private individuals with no sponsors, and only if
their FidoNet(tm) systems are not making (or helping to make) a profit.

  If you have any questions, comments or flames, please contact:

        mail: pete@kvitek.com
        Fido: Pete Kvitek@2:5020/6


                         Distribution
                         ------------

  The latest version of SqaFix is available for dowloading at the follwing
locations:

        freq: SQAFIX 2:5020/6@fidonet
		http://www.kvitek.com/fido

  New versions are also posted to XFTNSQSH file echo area by the author.

---------
That's it,
/Pete
