ZTick - TICK utility for MEBBSNet Release v1.0 Disclaimer - This software has been tested with the MungWall and Enforcer debugging utilities active. Every effort possible was made to make this code bug-free. However, I, Robert Miranda, only can guarentee that this will take up space on your hard disk provided you don't delete it. Beyond that, I take no responsibility for ZTick's actions. If you don't feel you can live with this, you have the power to resist using it. For the brave, keep reading... ZTick is intended to be a versatile .TIC file echo processor. Many default paths are configurable. File Echo tagnames and routing to other systems are limited only by your RAM space (linked lists, what a concept:^>). Optional copy paths are allowed for custom situations (i.e. nodediff's can be copied to a nodelist directory AND be posted to your MEBBSNet file catalog.) ZTick's main feature is that it reduces the pile of files that end up in the outbound directory because MEBBSNet (rightly so) won't delete files that don't match mail-related wildcards. The archive should contain: ZTick - The executable. ZTick.doc - This file. ZTick.CFG - ZTick Global options configuration file. Put this file in the ConfigFiles/ directory off of your MEBBSNet: path. ZAreaTick.CFG - Areas definition file. Put this file in the ConfigFiles/ directory off of your MEBBSNet: path. Both .CFG files have documentation in them. Both use the semicolon ';' to identify a comment line. Testers Note: Nothing significant changed since v0.16. Only text output. What it does: ZTick looks in your inbound directory for .TIC files. They, in turn, have information about an actual file (1 per .TIC) that was sent to your system. Depending on your ZAreaTick.CFG configuration, that file may be added to a MEBBSNet file catalog, and/or copied to a path you specify. In the event that you pass these files on to other systems, ZTick follows the following logic to specify the file in the outbound .FLO file: It will use the path to the file in database, if available, first. If this is the case, you will not have any files cluttering the outbound dir! Next, it will use the PATH: you specify in ZAreaTick.CFG, if available. (If this path is available the file gets copied there in any case). If neither option above is available, it will put a copy of the file in the OutBound directory and then insert the path into the .FLO file. The ZTick.CFG should be modified to enable passwords, CRC check, and other options in the software you may need. Once these are set, modify the ZAreaTick.CFG file, taking care to spell the MEBBSNet file areas and file echo areas properly. Features Inbound .TICs: Adds the file to the MEBBSNet file catalog and/or copies the file to a path you specify. Undefined areas copied to the BAD directory you specify. Password checking (Optional/Per node), CRC (Global option with individual override) are also included. Outbound .TICs: Uses the File Catalog path FIRST, the PATH: definition file path SECOND, and will default to the Outbound directory LAST when updating the outbound .FLO file. .TIC files are always posted in the outbound directory. Supports the .TIC 'REPLACES' keyword, which means that if the filename following the keyword is in the catalog, it will be removed and then new file added to the catalog. Replaces (a.k.a. updates) files that already exist in the catalog by removing the old file and then adding the new file. Fully supports Zone:Net/Node notation for passing files on to other nodes. Point systems are also supported in the software. (Be aware that the Seen-By/Path duplication detection mechanisms don't support points, so a point system shouldn't pass files along to other systems.) The nitty-gritty: Thanks to: William Bowling - Author of MEBBSNet. - Whatever it was you said that night, Bill, you got me motivated, that's for sure. Russel Miranda - Original AmigaTick code. Roger Walker formerly of Amigaville II - Former MEBBS Development Coordinator - Suggestions for options, testing, moral support. Dave Cooper - Debugging, programming help, testing. And there are probably others I missed... Why did I do it? Well, I didn't like what was available, I had the source from AmigaTick (From Russel Miranda), and I wanted to see if I could do it. As of this time, the 1.0 release, I request that anyone that decides to use this software as a regular part of their system to register with me by sending me a note with your name, a method of contact, and basic information on the system you run. This is so I have an idea who is using my software. No fee is charged for this software, however contributions are welcome. I would appreciate comments, suggestions, and bug reports, with as much detail as possible, and the offending .TIC files if they still exist. Also as of this 1.0 release, it may be included in any PD Collection (Including Fred Fish) or as part of any Disk of the Month (or similar software compilation) where only a minimum amount of money (less than $5.00 US) is charged to cover disk duplication and media costs only. No special limitations are imposed upon commercial use. This utility may be distributed as a part of MEBBSNet Professional BBS as a third party utility. Robert Miranda Email: FidoNet 1:268/428.0 1:13/737.0 AmyNet 40:702/201.0 SNail Mail: (Changed as of 8/94) Robert Miranda RR 1 Box 284 Bushkill, PA 18324 Telephone: BBS: 610-622-9905 VOX: 610-622-9904 (This may turn into another data line in the future) VOX: 610-626-3098 VOX: 717-588-7636 (Only if other methods fail, please. Leave msg.) History: (For historical purposes only :^> It's now bug free!?!) 0.1b - Initial Release 0.2b - Removed: Debug Code displayed internal access level value. Updated: Requires v1.9 of the MEBBSNet Utility Library. Fixed: File wasn't removed from the inbound directory if a password mis-match occured. Fixed: Properly handles NOPASSWORD option (I think). Fixed: File wasn't removed from the inbound directory if a CRC mis-match occured. 0.3b Fixed: Grunged SeenBy address was reporting an error that made no sense. Updated: Requires v1.11 of the MEBBSNet Utility Library. Fixed: MEBBSNet Library version.revision code would have had a problem if the version was incremented and the revision dropped back to 0. No problem anymore. Note: Negative numbered addresses are not parsed properly. For the moment I'm not going to worry about it. Fixed: Modification of a read-only string fixed by duplicating the string and modifying the copy. Thanks for that one Bill! Added: REPLACES Keyword in .TIC now handled. It will replace the indicated file if it exists in the catalog. FIRST release to the MEBBSNet Tester pool. 0.4b Removed: Some debug messages dealing with the 'Replaces' function. Fixed: Ztick Version string now reported (wasn't found with the version command). Added: Version and revision information on the MEBBSNet Utility library is printed out immediately after the library is opened, and before it is tested by my code. This will disappear in a future version, but should be useful for spotting update mistakes and other problems. Fixed: Not placing a digit after the AccLev keyword in the ZTick.CFG file may have allowed a -1 access level value to be loaded. I now ignore reading the NULL terminator on the line which results in the -1. It should not have caused any problems, as I run it through an absoulte value function later on, but just in case. 0.5b Added: The directory scan routine now will search for the wildcard of ????????.TIC instead of TK??????.TIC. A user needed to handle AF??????.TIC, so I figured there could be others. If any problems arise from this, please report them at once. Note: The version string does not contain the 'b' at the end of the version number. The 'b' is my identifier for a beta release. 0.6b Oops: Forgot to update the docs. See 0.7b. 0.7b Fixed: (I hope) a bug where an endless loop could occur while scanning ZAreaTick.CFG. 0.6b was unsuccessful in stomping this bug, and introduced a bug that missed lines while reading that file. (Marco Volk - that may explain why files weren't going to all of your downlinks. Thanks for the report). Oops?: I think I had it set for 68030 code compiles only. This may be the reason for some problems at some sites? Note: Released only to 1 person. 0.8b Note: Pulled out debug code from 0.7b. Note: It seems stable here. 4/28/94. Haven't released an update to all in over a month. Feedback requested. Note: Compiled with Optimization off. 0.9b Fixed: Points weren't being compared in the address comparison function. This resulted files not being sent to the points with the same Z:Ne/No number as the host. Thanks Marco Volk. Added: NOCRC: optional keyword added to ZAreaTick.CFG. Allows you to disable the CRC check for an individual file echo area. 0.10b Change: Generic line read/parse function wasn't generic enough to handle both .CFG and .TIC files IMHO. Decided to split them up. Less processing on the .TIC makes it a tad more efficient. Fixed: I have to check the catalog when a Replaces keyword and filename are present. I wasn't freeing up a temporary string. Minor memory eater. Note: A MEBBSCFG defined file path that doesn't exist can cause problems. The symptom is 'Add To Device Failed' messages. This problem results in the file being listed in the catalog, but the file can not get copied to one of the system catalog directories. Also, I get enforcer hits and odd pointers from some catalog functions until I kill the bad catalog entry or reboot. Note: Date 6/27/94. Fixed: Short descriptions that went over a certain length were not added. I finally debuged the behavior of the short description area and while I have yet to figure out what happens to CatRec.Description2, I know I'm not blowing out past the end of the string anymore. 0.11b Note: General code cleanup. .TIC keyword processing more efficient. Change: Descriptions were using two 80-character lines as MEBBSNet provides. This meant descriptions would overrun the right side of the screen. I will chop it down to 40 characters until Mebbsnet handles it differently. 0.12b Fixed: The address that was added to the Path was my Zone:Net/Node.Point and not your system's numbers. Now, Your #1 address is used for the Path, and all your active node numbers are used in the SeenBy. Change: Upped the CRC and Copy routine buffers to 16K. Was 4K. 0.13b Update: Raised the minimum mebbsutility.library version requirment to 1.18. Removed: Option for non-Mebbs operation. I may add it back later, but for now I rely on the mebbsutility.library heavily. Change: Reduced the amount of potential characters read per line from both a .TIC file and the .CFG files from 511 to 159. Two regular screen-widths should be enough. Complain if this causes problems, but it shouldn't. Change: Pulled out stack checking. Smaller code (@1K). 0.14b Update: Raised the minimum mebbsutility.library version requirment to 1.19. Change: MEBBSNet now supports long filenames and as a result, the display can handle the full 2 lines (80 characters each) of file description text. I now add up to 160 characters of description. Fixed: Many RAM allocation failures weren't going to abort nicely. Code cleaned up. Fixed: An oops created in 0.13 related to the length of the line read. It stomped a single byte in RAM somewhere - BAD! Added: A check to see if the actual file described by the .TIC is present in the inbound directory. Processing of that .TIC is aborted if the file is not found. Fixed: When I created the NOPASSWORD option, I screwed up password checking (something that shouldn't go through might have made it). The code was messy so I re-wrote the logic. Fixed: I broke CRC-checking when I added the selective-disable option. It's fixed now (I forgot a simple '!'). Added: BUFFERSIZE: keyword now available in the ZTick.CFG file. Values of 4-1024 (this represents K-bytes) are permitted. The default is 16 (16K). Check the example ZTick.CFG file for the format. P-Note: Code size still under 30K! 8/24/94 0.15b Added: -N command line option to surpress the start/end of loggings when no .TIC files are found. Reduces the log file size. Update: Recompiled with the latest library header. Requires v1.21 of the mebbsutility.library. Because of this, it now handles 39 character filenames (AmigaDOS won't ever give me that much, but it's a safety net). 0.16b Changed: 80 character decriptions were wrapping due to the indentation of the description lines. I trimmed the length to 74. 1.0 Release: Removed Beta/Tester strings. No bugs reported since b4 0.14b!