                             NmFwd WhatsNew
                             --------------


         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


