                                     NmFwd
        
                             Changes and Additions
        
        
        2.07    Public Release, March 25 1997
        
              - Areafix can now accept "+ <TAG>" and "- <TAG>" instead
                of "+<TAG>" and "-<TAG>".
        
              - Fixed problem with Rescan in case of "+ <TAG>".
        
        
        
        2.06    Public Release, February 10 1997
        
              - ATTENTION: Not a drop-in replacement for previous
                versions !
        
                The "AFProt <WTAG> <level> [<keys>]" statement now
                accepts wildcards in the "OS/2 way" (the '*' can be
                before, in the middle or after a string token).
        
                E.G.:
        
                AfProt *SYSOP*      500
                AfProt OS2*           0 2
                AfProt *              0
        
                The first matching entry is used; if no match is
                possible, the area is considered inaccessible. If you
                like to give free access by default, please don't forget
                to use "AfProt * 0" as the last entry.
        
                The "AfDefProt" statement has been dropped.
        
              - Undeliverable messages addressed to points of one's own
                system were trapped but nonetheless forwarded to the
                non-existing point.  Fixed.
        
              - NT version reported "DOS", fixed.
        
        
        
        2.05    Public Release, June 18 1996
        
              - Fixed problem with V7 semaphores that caused access
                violation.
        
        
        
        2.04    Very short lived, June 18 1996
        
              - Robot answers are not forwarded to the specified list of
                points when the applicable primary address is a point.
        
              - OS/2: New option to configure the type of date
                (Creation or LastWrite) to be used for deleting
                old files in the temporary directory:
        
                Tmp_Fa_Kill <days> [Creation|Write]
        
                The default is Creation.
        
                Example:
        
                Tmp_Fa_Kill 10 Creation
        
              - Semaphore implemented on V7 nodelist files,
                as per FastLst specifications.
                New errorlevel 11 on semaphore timeout.
        
              - New Icon by Andrea Vavassori.
        
        
        
        2.03  Public release, March 22 1996
        
              - Multi-Line files.bbs descriptions are now
                supported. To enable this feature the way you
                like, please use the "MultiLineDesc <nnn>
                [<c>]" statement, specifying the continuation
                column and character.
        
                For example, to have the 2nd and following
                description lines in files.bbs preceded by
                31 spaces, use:
        
                MultiLineDesc 31
        
                To have the continuation lines preceded by a
                '|' character, use:
        
                MultiLineDesc 29 |
        
              - A multi-line description accounts for ONE line
                in the file manager commands.
        
              - New statement: UniqueDmpLine.
                Makes NmFwd generate FILES.DMP filebase files with
                descriptions on one line only (multiple lines are
                concatenated).
        
                By default, NmFwd outputs multi-line descriptions
                without changes to FILES.DMP: when using
                L)ocate and N)ewfiles commands, Maximus will
                respect the original formatting, but the
                continuation lines will be aligned to the left.
        
                When this statement is used, the original
                formatting of descriptions is lost (in the
                filebase) but Maximus will be able to word-wrap
                and align when executing L)ocate or N)ewfiles
                commands.
        
              - ListDate format (date and size of files
                reported in files.bbs) and the various date
                styles (Usa, Euro, Japan) are now supported.
        
              - New -H "subject" switch for areafix, to get
                help.
        
              - New "AfHelpFile <filename>" statement for
                specifying a help file for areafix.
        
              - New %Query %List %Rescan %Help commands
                available for the body of messages addressed to
                areafix, with the same meaning of the
                corresponding -q -l -r -h switches in the
                subject.
        
              - Now the areafix add command can optionally
                include a '+' character; the following commands
                are equivalent:
        
                APWORKS
                +APWORKS
        
              - OS/2: Fixed problems with areafix rescans for
                echotags containing special OS/2 characters
                (e.g. the & command separator). When the
                command interpreter must be loaded, the
                parameters are passed between quotes.
        
        
        
        2.02
        
              - The default zone for messages read from *.MSG
                netmail areas (not containing a ^AINTL kludge) is
                now the zone of the primary address for THAT
                netmail area.
        
                Previously the (global) primary address was used
                for zone assumptions in any netmail area.
        
        
        
        2.01
        
              - Areafix bugfix: when adding a node to an area
                with NO links, a Carriage Return was erroneously
                added between the area definition and the added
                link.
                This problem is not very likely to happen on
                "normal" areas since at least the feed is usually
                present.
                Anyway it might create problems in the case of
                "local" echomails that are created without any
                link.
        
                This is a very old bug that has unfortunately
                not been reported until the release of v 2.00.
        
        
        
        2.00
        
              - Conversion of FileManager and UserManager to
                Maximus 3.xx.
        
        
              - WARNING: this version DOES NOT work with
                Maximus 2.xx.
        
        
              - WARNING: this version is NOT a drop-in
                replacement for v. 1.90: you MUST read the
                following points in this whatsnew and make the
                required modifications in nmfwd.cfg.
        
        
              - The "MaxPrm <filename>" statement MUST be moved
                from the "FileManager" section to the "System"
                one.
        
        
              - If the "MAXIMUS" environment variable is
                defined, the "MaxPrm <filename>" statement is
                optional and works as an override.
        
        
              - New errorlevel 9 for errors accessing the
                Maximus PRM file (usually Max.Prm).
        
        
        FileManager:
        
              - New syntax for RFAccess and RFDefAccess:
        
                RFAccess <pwd> <acs> [<points>]
                RFDefAccess <acs> [<points>]
        
                Where:
        
                <pwd> is the password to be used (as the
                subject of a netmail message) for accessing the
                filemanager with <acs> privilege.
        
                <acs> is a <level>[/<keys>] access string that
                specifies the level and keys available to the
                person who uses <pwd>. <level> can be any level
                "name" defined in the Maximus Access.Ctl as
                well as a level number.
        
                <points> is a list of points that must receive
                the answers of the FileManager.
        
                E.g.
        
                RFAccess SysOpPwd SysOp/U 0 2
        
                Specifies that the password "SysOpPwd" grants
                the "SysOp/U" access and the answers must be
                written to the local netmail ('0') and sent to
                point 2 ('2').
        
                Please note that for security reasons the
                answers are sent to <points> ONLY, even if the
                original message was from another node.
        
        
                RFDefAccess Normal 0
        
                Specifies that people addressing the
                FileManager with no valid password receive
                "Normal" access and the answers must be written
                to the local netmail (besides being sent to the
                addressee).
        
        
              - New syntax for all the statements that define
                the access requirements for the FileManager
                commands:
        
                <command> <acs> [<areas>]
        
                where:
        
                <command> is the name of a FileManager command
                <acs> is the Maximus access string required to
                      use <command>
                <areas> is a list of areas that can contain
                        wildcards ("OS/2 style") and
                        defaults to "*" (all areas).
        
                When a command is issued, the FileManager
                checks the list of statements that define the
                access rights from the bottom up (last to
                first). The first match between the current
                area name and <areas> determines the <acs>
                requirements for executing the requested
                command in the current area.
        
                E.g.
        
                Kill SysOp|AsstSysOp/U
                Kill SysOp private.*
        
                Specifies that the Kill command requires SysOp
                or AsstSysOp/U privilege in all areas but
                private.*, which are reserved to SysOp only.
        
        
                KillTo SysOp
                KillTo AsstSysOp/U msdos.* win.*
        
                Specifies that the KillTo command requires
                AsstSysOp/U privilege in msdos.* and win.*
                areas, SysOp in all the others.
        
        
              - New FileManager cfg statement:
        
                SysOpCommands <acs> [<areas>]
        
                It defines access requirements for all the
                following commands:
        
                Hurl, Kill, KillTo, Edit, Ren, Touch, DelAft,
                AddAft, SortAft.
        
                After "SysOpCommands" you can use the single
                statements as overrides.
        
                E.g.:
        
                SysOpCommands AsstSysOp
                SysOpCommands AsstSysOp/u local.1!*
                KillTo AsstSysOp/u
        
                Specifies that the "SysOp" commands require a
                password that grants AsstSysOp privilege.
                The "local.1!*" areas and the "KillTo" command
                require the 'u' key also.
        
        
              - The DIR filemanager command accepts <filespec>s
                with "OS/2 style" wildcards if run with filebase
                support, otherwise it accepts the wildcards
                allowed by the OS.
        
        
         OS/2 - The Touch command and all the FileManager
                functions use the Maximus 3.xx convention for
                the file dates on HPFS.
        
                The modification date is shown in reports (just
                as with the OS/2 DIR command), the creation one
                is used as the "upload date" to compute the
                "age" of files.
        
                Thus the output of a "newfiles 10" command
                could show files with dates much older than 10
                days, provided they have been uploaded (or
                touched) during the last 10 days.
        
        
        UserManager:
        
              - New syntax for the RemUser statement:
        
                RemUser <name> <pwd> [<points>]
        
                where:
        
                <name> is the UserManager robot name to which
                       netmail messages must be addressed.
        
                <pwd> is the password to use in the subject
                      field of the netmail.
        
                <points> is the list of points that must
                         receive the answers.
        
                E.g.:
        
                RemUser Raiser SysOpPwd 0 2
        
                Specifies that a Remote UserManager robot named
                "Raiser" can be addressed using the "SysOpPwd"
                password in the subject of the netmail and the
                answers must be written to the local netmail
                base ('0') and sent to point 2 ('2').
        
        
              - The "MaxLev <level>" statement can take for
                argument any level name defined in Maximus
                access.ctl or a level number.
        
        
              - New method for selecting classes of users in
                the UserManager commands: you can specify any
                Maximus 3.xx access string between brackets.
        
                E.g.
        
                (Extra|Normal/EFP)=list
        
                This command (in a message addressed to the
                UserManager robot) requests a list of users
                that have at least the "Extra" privilege or the
                "Normal" one together with the E,F,P keys.
        
        
              - New syntax for changing the privilege level of
                users: the "Level" keyword must be specified
                before the level name or number.
        
                E.g.
        
                John Doe = Level Extra
        
        
              - Encrypted passwords are reported as
                "<encrypted>".
        
        
              - If you set a password with the "Password"
                UserManager command and Maximus is configured
                to use encrypted passwords, the new password
                will be encrypted the next time maximus
                accesses the user record.
        
        
              - New command "RIP <yes|no>" to set/reset the RIP
                flags.
        
        
              - New commands to change the number of files
                uploaded/downloaded.
        
                DownFiles <[+|-]n>
                UpFiles   <[+|-]n>
        
                sets the total number of files
                downloaded/uploaded,
                optional +|- to add|subtract to|from
                the total.
        
        
              - New commands to change the Points
                Allocated/Used:
        
                CreditPoints <[+|-]n>
                DebitPoints  <[+|-]n>
        
                sets the user allocated/used points,
                optional +|- to add|subtract to|from the total.
        
        
              - <#>.bbs is not reported as a Custom Welcom File
                any more, since Maximus 3.xx seems not to use
                them.
        
        
        Fixes:
        
              - The SortAft FileManager command did not
                recognize the "<begin>" keyword, fixed.
        
        
              - Undeliverable (trapped by RTS) crash message to
                a point (BossRoute) was output to temporary
                outbound anyway, fixed.
        
        
        Others:
        
              - New mutual exclusive semaphore flag
                "FileBase.Bsy" used to avoid concurrent access
                and modification of the filebase by other
                ApWorks programs. There is no need to delete
                this flag if it is not deleted after a power
                failure or abnormal termination (ApWorks
                programs are smart enough to realize whether
                the flag is really in use or not).
        
        
              - NmFwd recognizes SqPrv areas (SqPrv is another
                program of mine) and does NOT allow rescanning.
        
        
              - The Return To Sender robot (RTS) now checks
                that the points of the local Boss are present
                in the V7 nodelist: it returns to the sender
                the messages that are addressed to non-existent
                points and adds a warning to messages that come
                from non-defined points.
        
                Usually the points of the local boss are
                already present in the nodelist since they must
                have a session password; in the case you have
                points without a password, you must include
                them in some local nodelist anyway.
        
        
              - Be aware that RTS does NOT check the existence
                of a point when applying the "name remapping"
                configured with the "Remap" statement in
                NmFwd.Cfg or Squish.Cfg.
        
        
              - After writing many messages to the temporary
                squish outbound, it is possible (especially on
                fast machines) that NmFwd waits a few seconds
                before exiting ("Waiting <nn> secs." is
                reported). This is necessary to avoid routing
                errors if Squish is run just after NmFwd.
                The same thing happens before invoking Squish
                internally due to a Areafix-Rescan command.
        
        
              - The UpFa statements have no more limits on name
                and dir lenght.
        
        
              - New Icon, gift of Andrea Vavassori.
        
        
        Support:
        
              - New registration sites for USA and
                Denmark/Sweden/Norway: see register.doc.
        
        
              - New support sites in USA:
        
                Thanks to Bob Juge my file areas and support
                echo are available in the USA from
                1:106/2000@fidonet, accessible via Vmodem at
                199.100.191.2. The files can be found also on
                ftp.juge.com.
        
                Dave Reed of 1:138/135@fidonet
                (dreed@wolfenet.com) is also linked to my areas
                and is willing to actively support ApWorks
                programs.
        
                Thanks to everybody.
        
        
              - New APWORKS phone numbers and ISDN line:
                2:332/504@fidonet +39-59-246112 ISDNC V34+
                2:332/524@fidonet +39-59-246113 ISDNC V34 FAX
        
        
              - New Internet address for contacting the author:
                alberto.pasquale@mo.nettuno.it
        
        
        
        
        
        1.90
        
              - 16 bit Dos version not available anymore.
        
              - 32 bit version available both for OS/2 and
                Dos (With Dos4GW extender).
        
              - Multiple netmail areas (with different primary
                addresses) are now fully supported, as per Squish 1.10.
        
              - Multiple "Nodelist" statements allowed.
        
              - FileBase automatic update (file areas changed by FMAN
                commands are automatically recompiled if the "UseFb"
                statement is used).
        
              - The buffer for the netmail messages now defaults to
                32000 bytes; the "FwdMsgSize <bytes>" statement allows
                to specify a larger size if you like.
        
              - The buffer for answer messages (from the various
                robots) defaults to 7000 bytes; the "MsgSize <bytes>"
                statements allows to specify a larger size if you like.
        
              - Rescan now available: use "-r" switch on the subject
                line of the message addressed to areafix, just as "-q"
                and "-l".
        
              - The new statement "RescanCmd <cmd>" allows to specify
                the command to be executed for rescanning an area.
                <cmd> takes two arguments: %t for the area TAG and %n
                for the node address.
        
                Example:
                RescanCmd   sq386p -l rescan %t %n
        
                Note: the -l switch allows to keep the scanned stuff in
                the temporary outbound.
        
              - The "BeforeRescan <cmd>" and "AfterRescan <cmd>"
                statements allow to specify commands to be executed
                before the first rescan and after the last one. They
                can be useful if you use different routing schedules
                for netmail and echomail: in the mail-processing batch
                you will have a netmail routing command after NmFwd
                while you need an echomail one in the case of rescans.
        
                Example:
                BeforeRescan sq386p squash -o -sNet
                AfterRescan  sq386p squash -o -sEcho
        
              - New command line switch "-l<logfile>" to override the
                logfile.
        
              - Now the logfile is opened as soon as the first
                specification is encountered, so, if you want to
                override the "LogFile" statement of squish.cfg in
                nmfwd.cfg, you must add a "LogFile" statement _before_
                "SquishCfg" and not after as it was with previous
                versions. The "-l<logfile>" command line switch acts as
                a global override.
        
              - New config file statement "MarkReceived" to mark
                as received the messages read by the various robots,
                instead of deleting them.
        
              - New config statement "WrapDesc [<indent> [<right>]]"
                to word wrap and indent the file descriptions reported
                by fman. <indent> is the number of blank columns for
                all the lines from the 2nd up, <right> is the right
                margin (the maximum number of characters in a line,
                including the heading blank).
        
              - The point remapping based on name now leaves the
                zone:net/node part of the to-address alone (previously
                it was changed to the primary address). If you have
                multiple addresses where your points can be reached,
                plase make sure to set the route accordingly.
        
              - The Cont command now recognize RAR OS/2 extended
                attributes.
        
              - Modified message kill logic: when NmFwd sends a message,
                it kills it if:
                - it is marked as "Kill/Sent"
                - it is "in transit" and KillInTransit is active in
                Squish.cfg or NmFwd.cfg.
        
                Previously all the sent messages were killed (even
                local ones) if "KillInTransit" was active and none were
                killed (even Kill/Sent) if KillInTransit was disabled.
        
              - NmFwd should now realize when the squish netmail area
                has been changed by SqFix and rescan it completely
                (if you use the FwdAll/FwdLoc/FwdBbs feature, during
                this rescan the messages addressed to the boss are
                forwarded again).
        
              - NmFwd is now able to work with no files.dat/dmp/idx
                even if you specify "UseFb". This way it is compatible
                with the filebase generated by QFB when you do not
                specify "FileList" in your maximus cfg for CD-ROM or
                other read-only areas.
        
              - OS/2: The filemanager file specifications should now be
                consistent with the OS/2 conventions for wildcards.
        
              - The file names are not converted to uppercase anymore,
                to be consistent with OS/2 case preservation.
        
              - Since the '-' is a legal character for file names,
                NmFwd does NOT consider it anymore as the start of a
                FILES.BBS comment. Please, do not use the dash
                character '-' in the first column of files.bbs !
        
        
        
        1.74
        
              - This is not really a bug fix: it's a new feature that
                avoids a problem that can arise in Squish areas with
                programs that do not fully comply with FTS. If a
                message is written without the terminating NULL in a
                squish format base, the Squish MsgApi do not add the
                terminating NULL when reading it (instead they do in a
                *.MSG area), thus NmFwd did not see the end of the
                message body and appended some garbage present in the
                message buffer (usually text from previous longer
                messages).
        
        
        1.73
        
              - Bug fix: when using akas with 4D point addresses
                together with the "BossFix" keyword, the messages
                addressed to the point aka were forwarded to the
                primary address.
        
        
        1.72
        
              - Bug fix: when using akas with 4D point addresses
                together with normal .0 addresses, there were
                problems dealing with other points of the same
                Boss.
        
        
        1.71
        
              - Fixed bug that could sometime cause files in Tmp_Fa
                to be killed before they should be.
              - New registration routine to show month and year of
                registration. Keys sent before 1/94 will show "91-93".
              - Fixed little bug in nodelist V7 search function that
                could in rare cases cause some nodes not to be found.
              - Fixed bug when forwarding messages from Squish Base:
                they did not have the FTSC text date-time.
        
        
        1.70
        
              - Added KillTo command to FMAN (see FMAN.HLP)
        
        
        1.69
        
              - Default "Fido" (00) product code changed to the just
                assigned 0xFA NmFwd product code in PKT headers.
        
        
        1.68
        
              - Added support for Squish 1.01 multiple outbound dirs.
        
        
        1.67
        
              - Added new "Deflating" Zip method to Fman
        
        
        1.66
        
              - Fixed bug that caused unpredictable results when typing
                text files with over 500 chars line lenght.
        
        
        1.65
        
              - New BossFix verb, to fix the Squish 1.01 bug in routing
                points to their Boss when using 4D and packet
                passwords.
        
        
        1.64
        
              - New BossEnable verb, to allow 4D points to send netmail
                with the Boss address (.0).
        
        
        1.63
        
              - 3DPoint no more necessary when using Squish in 3D mode
              - New BossRoute verb, to route-to-boss crash/direct messages
                addressed to points that are not found in nodelist or
                have a null phone number. (4D mode only)
        
        
        1.62
        
              - When using a *.MSG netmail, some remapped messages from
                points lost some characters at the beginning of the
                message text due to different behaviour of MSGAPI on
                *.MSG and Squish message-base. Fixed.
              - MSGID added to NmFwd response messages.
              - The response to a message from your system was marked
                Kill/Sent, so that it could erroneously be remapped to
                one of your points, if its sysop sent the message from
                the BBS. Fixed: now it is marked SENT.
        
        
        1.61
        
              - Multiple F/As that needed file moving where not
                correctly handled under ver 1.60: only the first file
                was moved; Fixed.
              - Some FileManager commands appended an extra empty line
                after moved descriptions; Fixed.
        
        
        1.60
        
              - RTS functions.
              - Return Receipt generation on request.
              - Full support for mixed 3D and 4D configurations.
              - Fixed Bug in areafix when deleting last link (area
                remains with no links).
              - Added Squish Base support.
              - Added Point Remapping based on name and direct packet
                (*.?ut) generation to allow use of 3D and 4D points
                at the same time.
              - Some new and some obsoleted verbs in the .cfg.
              - Filemanager now uses AREA.NDX to list areas in the
                same order as Maximus.
        
        
        1.50
        
              - Areafix for Squish.
        
        
        1.40
        
              - User & File management sections converted to Max 2.0.
        
        
        1.xx
        
              - Opus 1.1x versions
        
