XRaid - FileEcho AreaMGR for the Amiga Copyright (c) 1995 by Robert Williamson, FIDONET#1:167/104.0 ALL RIGHTS RESERVED This software is provided "as is", without warranty and/or guarantee of any kind. You may use and/or distribute this software and copies of it, as long as no alterations have been made, no files have been added to/omitted from the original distribution archive and no charge is asked for. This package may be freely distributed via BBSs, ADS, AmiNet and software libraries such as Fred Fish's and Aminet CD-ROMs, and other similar electronic channels. This package may NOT be distributed by SAN or by Disk magazines, PD libraries or BBSs and Services that charge extra for file transfers without authorization from, and compensation to the author. What is an AreaMGR? AreaMGR is the generic term to describe a program that processes user requests to link and unlink from echos. Although the specification for AreaMGRs as defined in fsc-0057 is for message echos (now referred to as ConfMGR), the syntax has now come to be applied to file echos also. FSC-0057 defines both the minimum command set and extensions to be used for such programs. Additional command extensions as defined by a number of other FileEcho AreaMGRs (such as AllFix and Seal) have also come into common usage. XRaid supports most, if not all, of the minimum command set as well as many of the extensions. Note that AllFix DOES NOT support the basic FSC-0057 command set. An AreaMGR performs four basic FTN functions: - Parses a request from a user to add, remove or list FileEchos. - Checks users password and access level. - notifies user of the results of his request. - Updates the configuration. XRaid does much more. Status of This Release: This is BETA and given the great number of features it probably has bugs. In the case of a serious ERROR, and if the error conditions allow, XRaid WILL AUTOMATICALLY WRITE A MESSAGE to ME at either FIDONET#1:167/104.0 or AMIGANET#40:600/104.0. BE SURE that you have set these addresses as ROUTED in your tosser or packer/router config BEFORE running XRaid, so as not to incure long-distance charges. The LogLevel for log messages is presently set quite low in order to display a lot of progress info for debugging. At a LOGLEVEL of 3, the log will grow very fast. At a later date, loglevels will be changed to insure a minimal amount of info for normal processing. This documentation may not be always up to date, as features are being added at a very quick pace. Refer to the example XTick.cfg for config changes and the XRaid USAGE display for command line changes. The ToDo list is changed daily, items being either implemented and removed from the list or new items added. There is no obligation on my part to implement anything in the ToDO list unless a contract to do so is entered into by myself and a customer. Copyrights: XRaid, XRaid.doc and the format of XTick.cfg are all, Copyright (c) 1995 by Robert Williamson, FIDONET#1:167/104.0 Requirements: WB 2.1 MINIMUM rexxdossupport.library v2.3 The AmigaOS commands List and Assign must be either resident or on the path. Features: o pure, residentable o multi-ftn o supports BOTH XferQ and Flow File systems o uses XTick config file o advanced config format allows multiple keywords per line o GLOBAL options can be overidden by SITE or AREA options o SITE options can be overidden by SITE's AREA options o SITE and AREA passwords o config report to all or one SITE o extensive command parameter substitution available o configurable commands w/substitution for packing and importing o multiple commands can be defined for all types o displayable SITE config, AREA config and GLOBAL config o notification message for all errors in user request o will also use RoofLog function host if active. o compliant with fsc-0057 and compatible with AllFix See ToDO for future features. Installation: Be sure that your dearc command preserves attributes. If it does not, run: > Protect Mail:XRaid pwerd Copy XRaid to somewhere on your path, MAIL: is nice. For faster loading, you can pre-load them as resident with this commands: > Resident Mail:XRaid ADD Be SURE you do not have any other program called XRaid on your path. If you do not have a CFG: assign, create one and place your XTick.CFG there. Otherwise, you will have to specify the CFGFILE path on the commandline. If you are going to do it anyways, then a good idea is to copy the config to RAM: in your startup and use CFGFILE RAM:XTick.CFG in your XRaid command lines. This will speed up operations as bit more. Copy rexxdosupport.library and rexxplslib.library to any directory of your LIBS: assign. Copy Start-ARexx to S:. Then remove the call to RexxMast in your S:Startup-Sequence and add a call to S:Start-ARexx to your S:User-Startup. Copy RPStart#? to your SYS:WBstartup directory. Templates: XTick uses standard AmigaDos Templates for both command line arguments and for many configuration items. See Xconfig.DOC for explanation of templates used. Command Line Usage: The various modes allows use of XTick in WhenRecd, TurnAround and AfterSession commands as well as in a cli. The template is divided into functional sets. A Set is defined by the first parameter you give. DEBUG and CFGFILE may be used with any set, but may not be the last items in the command line if a /F template is specified in the set. Template parameters that are not valid for the set are ignored. The template below shows each Set. Any of the addressing formats defined above can be used on the command line. Template: SHOWCFG/S SHOWSITE/K,SHOWAREA/K, REPORT/K, SENDHELP/K, SENDSTATUS/K, GETHELP/K, GETSTATUS/K, SENDCMD/K,CMD/K/F, RAIDLIST/K, DEBUG/S,CFGFILE/K,LOGLEVEL/K (all sets) SHOWCFG [CFGFILE ...] [DEBUG] Displays configuration SHOWAREA filearea [CFGFILE ...] [DEBUG] Display configuration for an FILEAREA SHOWSITE address|ALL [CFGFILE ...] [DEBUG] Display options for a site and areas to which it is connected REPORT address|ALL [CFGFILE ...] [DEBUG] Sends a status and areas report to site. If site is ALL, this will send reports to ALL configured sites INCLUDING those configured for NOREPORT. usage in cron: 30 03 * * 1 XTick REPORT ALL SENDHELP address|ALL [CFGFILE ...] [DEBUG] Sends the help file as a message to site. If site is ALL, this will send the help message to ALL configured sites. SENDSTATUS address|ALL [CFGFILE ...] [DEBUG] Sends a site status report as a message to site. If site is ALL, this will send status reports to ALL configured sites. GETSTATUS [progname@]address|ALL|UPLINKS Sends request for Status from site. If address is ALL, sends requests to ALLFIX at ALL configured sites. If address is UPLINKS, send request to configured manager program for site. If a single address is specified, and the progname@ option is used, the request is sent to that program name, otherwise it is sent to ALLFIX. The message is sent with the From name in the config keyword SYSOP. GETHELP [progname@]address|ALL|UPLINKS Sends request for usage instructions from site. If address is ALL, sends requests to ALLFIX at ALL configured sites. If address is UPLINKS, send request to configured manager program for site. If a single address is specified, and the progname@ option is used, the request is sent to that program name, otherwise it is sent to ALLFIX. The message is sent with the From name in the config keyword SYSOP. SENDCMD [progname@]address CMD cmdstring;cmdstring;cmdstring Sends a ";" separated command string to address. The ; is converted to CR in the message. If a single address is specified, and the progname@ option is used, the request is sent to that program name, otherwise it is sent to ALLFIX. The message is sent with the From name in the config keyword SYSOP. CFGFILE fullpathname Defines the fullpath name for the XTick configuration file. The default is CFG:XTICK.CFG MSG fullpathname The defined MSG file is read and processed. RAIDLIST fullpathname The defined RaidListfile is read and processed. The RaidList is the output of a packet scanning program. This function requires a packet scanner, such as XScan. DEBUG Displays VERBOSE info and is valid with each operating mode. When DEBUG is set, the window is not opened, everything is displayed in the current CLI. The amount of info displayed is MASSIVE. In the case of reported bugs, a copy of this will be required. LOGLEVEL Overides the LOGLEVEL setting in the config file. Configuration: The default fullpathname of the config file is CFG:XTick.cfg. You can specify an alternate fullpathname on the command line. Please see Xconfig.DOC for explanation of config file format, keywords and templates. When updating the configuration file, XRaid reformats and re-orders various items. In particular, please note that all SITEAKA entries are replaced by full SITE entries. XRaid always re-reads the config after writing, and reports any error found. Addressing: Addresses can be specified in a number of formats in both the config and on the command line, the preferred being FQFA. The minimum acceptable is 3d (z:net/node.) for FidoNet and FTNS listed in FTNLIST. All other FTNs must be specified as 5D or FQFA. Address Formats: FQFA - ftn#zone:net/node.point (all must be present) 5d - zone:net/node[.point]@ftn (if no point, 0 is assumed) 4d - zone:net/node.point 3d - zone:net/node Reports: Unlike the XTick version of the REPORT command, XRaid's REPORT does NOT respect a setting of NOREPORT for a site. This allows you to send a REPORT to a site that has turned reports off via the %NOTIFY command. The following command will send the REPORT. This report is a full report of a site's status, permissions and areas. This is the same report that is sent in response to a %QUERY command. XRaid REPORT The SENDSTATUS command will send a report of a sites' status and permissions, the area report not being included. The same status report is sent in response to the %STATUS command. Reports will be written as packets in the global OUT directory and packed/routed by the defined PACKER command. Get Commands: The SENDCMD command permits sending any area manager command to a configured site. The ALL and UPLINKS options is not valid with SENDCMD. Multiple commands are permitted, if separated by semi-colons (;). The ; are converted to CRs in the message. eg: XRaid SENDCMD 1:167/0 CMD %NOTIFY OFF;%MESSAGE OFF or XRaid SENDCMD RAID@1:167/0 CMD %NOTIFY OFF;%MESSAGE OFF The GETHELP and GETSTATUS commands are provided to simplify sending the commands %HELP and %STATUS to one site, all uplinks or all configured sites. The messages are sent using the name defined as SYSOP in Xtick.cfg as the From name. This is necessary to prevent an endless of exchange of messages between the two robots. This can occur if the other site requires the sysop name. Uplinks and Request Forwarding: When a downlink which has the FWDREQ permission set, requests an area that we do not have, XRaid will search for the AREA in the configured FILEBONE listing and try to find the FDN in is GROUPSLISTs. If the area is found, XRaid will then search the configured UPLINKS for a site that is in the same Group for that FDN (File Distribution Network) for that area. If one is found, and the requesting site is authorized for the Group, a message is sent to the area MANAGER of that site, requesting the area. The information for the new area is stored in a RAIDDATA file. This file will be used by XTick to add the new AREA when files are received. FileBone: The FileBone is a network of sites, similar to the Echo BackBone, except that these site distribute FileEchos. The FileEchos distributed by the FileBone are listed in the file FILEBONE.NA which is updated weekly and distributed in the appropriately named FileEcho, FILEBONE. The format of FILEBONE.NA is documented and XRaid can read this format to find requested FileEchos. The particular fields XRaid uses are the names of the FileEcho and the FDN (File Distribution Network) and the descriptions of the FileEcho and FDN. FileBone listing format: The following format is used to describe each of the File Distribution Nets. Kywd FileTag Level Flags Description ---- -------- ---- ----- -------------------------------------------- Area XYZ_GIF 0 ! XYZ: GIF files for the XYZ program ^ ^ ^ ^ ^ COL:1 1 2 2 7 6 2 9 8 "Area" - Used by RAID (thanks George!) and similar programs to denote the beginning of an file area definition. FileTag - Name of area that files will be sent under. Similar to an echomail areatag, but limited to 8 characters or less. Level - Security level (0-4096) used to protect this area Flags - Access flags (see below) to control who's allowed to feed, and what type of echo it is. Desc - FDN abbreviation followed by a description of the area's contents. There are five types of access flags: "!" - Filebone distribution. Areas marked with this flag are carried by the Filebone and can found at any Filebone Hub site (see below). "." - Open distribution. While unrestricted in nature, these areas are *NOT* distributed by the Filebone. Although many Filebone Hubs do in fact carry them, you may be forced to find your own feed. "*" - Hatching is allowed by *any* node attached to the area. This flag may be mixed with any of the others. If an area does not contain this flag, then you may not hatch directly into it. There will either be a "return channel" provided or you must send your submission directly to the FDN head or other listed site. "&" - Do not send this area to any downlinks. This flag usually indicates that an area is a "return channel" to be used for submitting files to a FDN head for distribution. Be sure to remove it in your TIC.CFG for your uplink *only*. This flag should only be used in conjunction with the "*" flag. ( all ) Restricted distribution. These areas are privately distributed (others) and are *NOT* carried by the Filebone. You must contact the FDN head to obtain a feed. Notification Messages: If an error is encountered processing a user request, a message will be sent to the sending site with an indication of the error. The messages will be written as packets in the global OUT directory or the AREA's OUT over-ride and will be packed/routed by the defined PACKER command. For certain errors, a copy of the message will also be sent to YOU. The packet will be placed in your currently defined inbound directory. AreaMGR Commands: XRAID supports a sub-set of the fsc-0057 Area Manager commands, as well as the AllFix super-set. The AreaFix/Raid dash command syntax is NOT supported. This means that the subject field of the message must contain the site's XRAID password ONLY. For security purposes certain commands defined in FSC-0057 or in use in other file echo managers are NOT supported. These are marked with a *. See XRAID.hlp for a more complete description of the supported commands. The confiduration entry ALLOWCMDS defines which of the more sensitive commands and functions XRaid will support. Supported Commands: + To connect to one or more FileEchos - To disconnect from one or more FileEchos %-ALL To disconnect from ALL FileEchos. %+ALL To connect to ALL FileEchos. FwdReq not permitted. %HELP To request this help message %STATUS To request a status report Sends a report of site status and permissions %QUERY To request a list of FileEchos for which you are active Sends a full report of site status and permissions, linked areas, and permissions for each linked area. %LIST To request a list of fileechos available to you. %LINKED To request a list of fileechos to which you are connected. %UNLINKED To request a list of fileechos available to you, to which you are not already connected. %PAUSE To temporarily turn off all your FileEchos %RESUME To turn any inactive FileEchos back on %NOTIFY=On/Off To turn the notify function on/off for your system This disables the sending of the full REPORT. %MESSAGE=On/Off To turn the message function on/off for your system This disables the sending of File ATTACH message. %TICK=+/-FNC,+/-TIC,+/-TIC3D,+/-TO,+/-MD,+/-MA,+/-AD,+/-FN,+/-TI Toggle the TICK file option for your system '+' = On, '-' = Off FNC - convert filenames to msdos 8.3 format TIC - sending of TIC file TIC3D - 3D addressing TO - TO line in TIC file MD - multiple DESC lines in TIC file MA - MAGIC line in TIC file AD - AREADESC line in TIC file FN - FULLNAME line in TIC file (in FNC enabled) TI - AUTHOR, SOURCE etc. lines in TIC file Please note that the %TICK command is VERY different from that of AllFix. %PASSWORD To change your AreaMgr (RAID) password %ECHOPASSWORD To change your FileEcho (TIC) password %NOTE Everything following a %NOTE, %COMMENT %COMMENT or --- or tear line is ignored Unsupported commands: The following commands as used in ALLFIX or defined in FSC-0057, are presently not supported. Support may be added in the future, however I have serious reservations about some of these. I have added some comments below. * %- To disconnect a group of file echos * %+ To connect to a group of file echos This is NOT such a simple change. One must keep in mind that this could end up generating HUNDREDS of requests to your uplink to add all the echos to which you yourself are not connected. * %COMPRESSION= Choose the compression type (ARC,ARJ,LZH,PAK,ZIP) * %PACK=None/TIC/ALL Toggle the pack mode option for your system These commands serve no purpose in Xraid. IMHO, re-archiving a forwarded file invalidates security. Archiving TIC files is just plain dumb. * %RESEND To request that ALLFIX resend a certain file This function is handled by the %REQUEST and %UUREQUEST functions of FQuery. Re-hatching to a single site is not supported. Like ALLFIX, XRAID does NOT support ANY of the FSC-0057 Remote Maintainance functions. These include creation, deletion and tagname change of FileEchos. The RaidList: XScan reads packets and scans them for netmail messages addressed to XRAID or any of the defined aliases. XScan scans each such message and produces a line (max 64K each) per XRaid message. XScan writes an output file in APPEND mode, the filename as defined in XScan.cfg. The format of a raidlist line is: dest_address|from_name|origin_address|password_from_subject|commands Note that '|' is used as a field separator. dest_address - the address to which the message was sent from_name - the name of the sender (the user) origin_address - the address of the message originator Password_from_subject - the password in the subject of the message commands - a ';' separated list of areamgr commands Each is separated with a ';' (semi-colon). These commands include all lines that begin with '+', '-' or '%'. If no commands were found, this field should be empty.