-==* JamScan 0.66 *==- By James McOrmond September 1st, 1994 What is JamScan? JamScan is a complete replacement for JBundle, an Arexx script I wrote last year, to bundle up uncompressed packets of mail, and to add them to Xferq.library to be sent out during a session. JamScan does more than JBundle ever did, and it also does it much faster! (JamScan is also pure for those of you that want things as fast as possible and like to make things resident) The reason I wrote JamScan at this time, is that with the release of JamMail, I figured people would want a relatively fast and easy to use program that will fix up the files in their outbound directory. Note: JamScan, and most Jam* utilities, all require AmigaDos2.0 or greater. How does it work? When you run JamScan, it will check for an Env: variable named "JAMSCAN" and if it exists, it will use the contents as the filename for the config file. If no ENV: variable exists, the default is Mail:JamScan.cfg. After reading the config file, it will scan your packets directory for files that fit any of your route patterns. If the filename also fits the pattern "#?.?ut", it will compress the packet up into a bundle using the archiver configured (LHA default). If it finds a bundle in the outbound directory, it will make sure that the file is being sent to that system (if your tosser already does the archiving, this is what you'll likely be using). This method is not as safe as the first option, but it is required until more tossers are Xferq.Library aware. The priority that these files are sent with is configured one of two ways. If you specify "Hold", "Crash", or "Direct", the file will have the the priority that the specific type has (Defaults are: -50 for hold, +30 for direct and +50 for crash). If this is a bundle that JamScan is just trying to add to Xferq a setting of "Norm" will result in a priority of 0. If this is a Bundle that JamScan has just added a packet to, it will check the 3rd last character in the origional filename and set the priority appropriate to that character. (C=Crash, D=Direct, H=Hold). How Do I install JamScan? JamScan is very easy to install. There are really only two relevent files. The JamScan binary itself should be put somewhere in your search path. If you have a directory where Networking software goes, this is likely a good place. The other file is your config file. I myself have the config file in my Mail: directory, but you can locate it wherever you wish. If your config file is not Mail:JamScan.cfg, you need to specify the full path name to get to your config file in the JamScan Environment variable. JamScan requires at least a stack of 15000 bytes. Configuring JamScan: There are 8 different commands that JamScan understands in its config file. They are as follows: HOST - Your Host address HOLD - The default Priority for "Hold" mail -50 DIRECT - The default Priority for "Direct" mail 30 CRASH - The default priority for "Crash" mail 50 BUNDLES - The Directory Bundles will be placed PACKETS - The directory Packets will be searched for PKTS - The directory temporary compression directories will be made ROUTE - The actual Routing command. The "Packets" and the "Pkts" directories must be on the same device. I have placed the Pkts directory as a Sub-directory in the Packets directory, you may wish to do the same. The only keyword that is absolutely required is at least one ROUTE keyword. Without any ROUTE lines, JamScan won't do anything. How do I setup a Route line? A route line can have 6 arguments on the line. The first two are mandatory, but the rest two are not. The first argument is the filename pattern. This is the filename as it appears in your PACKETS directory. Each name in this field should end with a #? unless you are wanting to specify the whole filename. This field uses full AmigaDos2.0 pattern matching. This can get really powerful and complicated, so you may want to read your AmigaDos manual for some hints on using strange patterns. The Second Argument, is the Xferq.Library compatible address that the file will be sent to. This can be anything from a single number, which it will assume is another node in your Net (by using the defaults in your "HOST" keyword, and the Host address you have setup with Xferq itself), to a full 5d FTN address. As of version 0.58 of JamScan, the destination address in the second argument is allowed to have wild cards. Any of the numeric fields can be replaced by an * character (only an * character, not any other wild card character). This allows JamScan to require a much smaller config file and doesn't require you to add a configuration line for every single system you might want to send mail to. With version 0.59 of JamScan, it will now read .FLO type files. At the very basic level, route statements can be setup to route all .FLO style files to its own 4d address (using the * wildcards) which makes the config file very small. You can also put a Non-Fidonet address type in this field, and it will work fine. The next two fields are the Archiver type and the priority. The defaults are the "Lha" archiver, and a "Norm" priority setting. Either or both of these two settings can be left out, and they can be in either order. The outbound compressors supported are "Lha", "Lzh", "Arc", "Zoo", and "Zip". A setting of "Non" is now also supported, so any packets found in the "PACKETS" directory, will not be compressed before sending them out. Also, if one of these two fields is found to be a number (non-0 value) then this number will be used directly as the priority that the files will be sent with. Also, on this line, there can be a "MOVE" command, followed by a full directory name. This directory will be used as an alternative location to put bundles or packets that JamMail creates. A new switch has been added to JamScan. This is to force JamScan to delete the .?LO file after it has been converted to Xferq.library. ----------------------------------------------------------------------- Example Config File: (relatively complicated) ; This example uses minimal routing inside the mailer, and does a ; few non-standard things. ; Your Host Address (2d is required, any extra is allowed) HOST 1:163/139 ; Settings for the default priorities HOLD -50 DIRECT 30 CRASH 50 ; Directory where outbound bundles will be put. BUNDLES outbound: ; Directory to search for outbound files PACKETS outbound: ; Directory root used to create temporary compression directories PKTS outbound:packets/ ;delete flo files after converting them DELETEFLO route 1.167.#? ZyXELNET#18:110/0.0 lzh norm route 1.163.139.2.#? FidoNet#1:163/139.2 non hold move in:point2/ route 18.163.139.2.#? FidoNet#1:163/139.2 non hold move in:point2/ route 40.553.139.2.#? FidoNet#1:163/139.2 non hold move in:point2/ route #?.163.?11.#? FidoNet#18:163/311.0 lzh crash move out:Ottawa/ route 2.#? ZyXELNET#16:16/0.0 lzh norm route 16.#? ZyXELNET#16:16/0.0 lzh norm route 17.#? ZyXELNET#16:16/0.0 lzh norm route 19.#? ZyXELNET#18:25/0.0 lzh norm route 18.21.#? FidoNet#18:21/0.0 lzh norm route 1.2402.#? FidoNet#18:21/0.0 lzh norm route 18.24.#? FidoNet#18:24/0.0 lzh norm route 1.121.#? FidoNet#18:24/0.0 lzh norm route 18.26.#? FidoNet#18:26/0.0 lzh norm route 1.260.#? FidoNet#18:26/0.0 lzh norm route 18.#? ZyXELNET#*:*/*.0 lzh norm route 1.163.1?9.38.#? FidoNet#1:163/109.38 lzh crash move out:Points/ route 1.163.1?9.4.#? FidoNet#1:163/139.4 lzh crash move out:points/ route 1.163.109.#? FidoNet#1:163/109.0 lzh crash move out:Ottawa route 1.163.13(3|4).#? FidoNet#1:163/134.0 lzh crash move out:Ottawa/ route 1.163.139.8.#? FidoNet#1:163/139.8 lzh hold move out:Points/ route 1.163.#? FidoNet#*:*/*.0 lzh crash move out:Ottawa/ route 1.243.#? FidoNet#*:*/*.0 lzh crash move out:Ottawa/ route (1|2|3|4|5|6).#? FidoNet#*:*/*.0 lzh direct route 40.553.#? AmigaNet#*:*/*.0 lzh crash move out:AmigaNet/ route 40.#? AmigaNet#*:*/*.0 lzh direct move out:AmigaNet/ ---------------------------------------------------------------------- Example Config File: (simple) ; This example assumes all routing is done inside the tosser, and ; assumes some internal values. All sessions are assumed to be 5d ; with the correct Domain. ; Your Host Address (2d is required, any extra is allowed) HOST 1:163/139 ; Directory where outbound bundles will be put. BUNDLES outbound: ; Directory to search for outbound files PACKETS outbound: ; Directory root used to create temporary compression directories PKTS outbound:packets/ ;delete flo files after converting them DELETEFLO route (1|2|3|4|5|6).#?.#?.#?.?LO FidoNet#*:*/*.* lzh norm route (39|50|41).#?.#?.#?.?LO AmigaNet#*:*/*.* lzh norm route (16|17|18|19).#?.#?.#?.?LO ZyXELNet#*:*/*.* lzh norm --------------------------------------------------------------------- History: 0.54 - initial release, October 4 0.55 - minor tweeks, October 16 0.56 - Adding support for converting .FLO files. (not finished) February 94 0.57 - Raised number of route lines to 200 (the limit of 50 had been hit) Changed to SAS 6.3 from Lattice 5.10b March 94 0.58 - Adding pattern matching ability to destination address field "*" is the pattern. Back to Lattice 5.10b :-( 0.59 - finishing up .FLO support. Together with * pattern matching makes things much quicker to configure for flat-file mail systems (IE, written for TrapDoor type systems). 0.60 - "MOVe" option added - alternative "BUNDLES" directory. fixed stack problems 0.61 - "NONe" option added - doesn't compress outbound .?UT files. 0.61b - Memory problems worked on. 15k stack required. ZIP compression requires SPAT script from WorkBench Disk installed 0.62 - "DELETEFLO" option added so .?lo files are deleted after being converted. 0.62b - Fixed possible NORM problem - added "simple config" example. 0.63 - More fixes with NORM priority of .?LO files and .?UT files. 0.64 - ? 0.65 - tabs now allowed between columns :-) 0.66 - fixed stupid bug introduced between 0.64 and 0.65 regarding reading of .?LO files. - possibly fixed NORM handling of non-compressed packets. 0.67 0.68 - trying to fix up reading of .?LO files with/without paths given.