NmFwd Changes and Additions 2.06 Public Release, February 10 1997 - ATTENTION: Not a drop-in replacement for previous versions ! The "AFProt []" 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 [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 []" 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 " 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 " statement MUST be moved from the "FileManager" section to the "System" one. - If the "MAXIMUS" environment variable is defined, the "MaxPrm " 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 [] RFDefAccess [] Where: is the password to be used (as the subject of a netmail message) for accessing the filemanager with privilege. is a [/] access string that specifies the level and keys available to the person who uses . can be any level "name" defined in the Maximus Access.Ctl as well as a level number. 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 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: [] where: is the name of a FileManager command is the Maximus access string required to use 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 determines the 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 [] 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 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 [] where: is the UserManager robot name to which netmail messages must be addressed. is the password to use in the subject field of the netmail. 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 " 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 "". - 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 " 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 "" 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 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 " 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 " 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 " allows to specify the command to be executed for rescanning an area. 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 " and "AfterRescan " 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" 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" 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 [ []]" to word wrap and indent the file descriptions reported by fman. is the number of blank columns for all the lines from the 2nd up, 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