Nanny Mail Processing for TBBS The intent of this document is to describe the steps that I took to implement Nanny Mail Munching on my network with TBBS v2.3[16]. Like many things in life, once I got it all sorted out and running (and looked back at what I had done) it turned out to be pretty simple. However, it seemed far from simple over the period of several months that it took to work through all of the issues. In this document, I will outline the things that I found necessary to do to implement the Nanny processing, as well as the things that I believe are not contained in the TBBS documentation (or were invisible to me ). General System Layout First, a few notes about my system configuration and operation: My system operates both as a Fidonet Hub and as a single node. This required a number of external events each day to process mail for the nodes that I fed. This led me to pursue the objective of Nanny processing to eliminate shutting down the board for these events. My system was configured with the hub address as the primary address, and the node address as an AKA. The two machines of interest in this discussion both operated under MSDOS 6.22 with Lantastic 6.0. The C drive on the BBS machine was mapped as drive J on both machines, and the C drive on the Nanny was mapped as drive H (as outlined in the TIMS documentation). As you will see in the following information, this allows the flexibility to run Flame from either machine. TIMS was configured (in TIMS.CTL) to do realtime tossing and scanning. Tossing, however, was configured to toss from a directory other than the primary mail directories (I couldn't find this in the documentation, and it merely consisted of adding the directory to toss from on the DOTBBS line in TIMS.CTL). You will need some method of invoking Flame on the Nanny at the times you desire. The method which I used was a program called Task Scheduler version 2.6 produced by Simian ID Software (filename SCHEDTSK, available on Compuserve as shareware). This is a reasonably powerful DOS CRON which also allowed me to easily schedule other tasks on the Nanny, such as RAID and TICK processing, as well as tape backups. In my configuration, I have Flame processing on the Nanny take place every 15 minutes, and on the BBS machine as part of the nightly maintenance external event once per day. How the System Works TIMS functions normally on the BBS machine, accepting and transmitting files to nodes. When nanny processing takes place, Flame runs in TSPRA mode (see the command line in the batch file PROCESS.BAT. You MUST specify NOTBBS on the command line as the Nanny processor does not have full access to the message base on the BBS machine) and reads through all of the packets it finds in the J:\MAIL\FILES and J:\MAIL\MAIL directories (the FILES directory is where TIMS places inbound bundles of mail, and the MAIL directory is where it places individual inbound Netmail packets on my system). In the course of this processing, Flame processes all inbound and outbound areafixes, as well as unpacking and processing all mail bundles and generating any outbound bundles for downstream nodes. Flame will generate an output bundle for my BBS (as configured in FLAME.CFG) to the file TBBS.IN. Following operation of Flame, the batch file copies the output bundle that is destined for my BBS into the directory which TIMS tosses from (J:\MAIL\PROCESS) into the filename 99999999.PKT (which is a packet name my system should never get), and then TIMS just reads all of the messages in in realtime from that directory and file. One effect of this Nanny processing, which is noted in the TIMS manual, is that none of the echomail which is imported by TIMS in this fashion has the message threads maintained (not an issue for me, but you should be aware of it). An effect which has seemed to plague many people that are using Nanny processing is the appearance of .MSG files, which TIMS cannot read (and just ignores). These files (if viewed with a hex display tool), are basically individual netmail messages generated either by areafix or from the individual netmail packets (e.g. crash mail packets containing a single message). I have never seen a .MSG file generated by a packet that contained more than one message. After a *lot* of work on this (including trying to find a utility that would take these files and convert them into .PKT files on a DOS machine) I discovered by accident that when Flame runs in TBBS aware mode it will find and read these .MSG files and correctly toss them into the message base. This works well for me since I need to run a nightly external event for other processing that can not take place with the board up, and just run Flame (in TBBS aware mode) as part of that event. It should be noted (as it is in the TIMS doc's) that by using drive mappings that are the same between the Nanny and the BBS machine, you can very easily implement this type of processing with a simple variation in the batch file (all of the configuration files will reference the correct drives regardless of which machine you run it from). As TIMS is running in realtime mode on the BBS machine, it is *imperative* that you configure the realtime toss to toss from some other directory than your inbound directories. The reason I discovered for this is that if you toss from the inbound directory, TIMS will preemptively toss any areafix packets that have been crashed to your system into the message base and areafix (as part of Flame) will never get a chance to see them or process them. This was quite a mystery to solve as I was working the system details out! System Implementation Details Now I will attempt to take you through the configuration and batch files that I use in my installation (note that these are *much* simpler than the extensive processing which may be found in the ALLBATS file available on the HQ Board). I can't say with certainty that these are optimized or perfect, but they have certainly worked for me. TIMS.CTL The key feature to look at in this file is the DOTBBS line related to the message tossing (see how appending the directory name to the end of that line causes tims to toss from a specific directory): ;****************************************************** ; System Identification ;****************************************************** NAME Mark Quarles ADMIN Mark Quarles SYSTEM The Unicorn TBBS Hockessin, DE NODE 1:150/7 AKA 1:150/240 ;****************************************************** ; DIRECTORY SPECIFICATIONS ;****************************************************** PACKET J:\MAIL\PACKETS MAIL J:\MAIL\MAIL FILES J:\MAIL\FILES J:\MAIL\FILES J:\MAIL\FILES\BPW OUTBOUND J:\MAIL\OUTBOUND ;****************************************************** ; PATH TO THE LOGFILE ;****************************************************** LOGFILE J:\TBBS\TIMS.LOG ;Session Passwords ;************************************************************* ; ITEMS FOR DIALOUT CONFIGURATION ;************************************************************* DELAY 10 TAGLINE = The Unicorn TBBS * Hockessin, DE * 302-234-9159 MAXDIAL 1 NO-FORWARD ;************************************************************** ; ITEM TO INVOKE REAL-TIME SCAN - ONCE EVERY 10 MINUTES ;************************************************************** DOTBBS 10 254 SCAN DOTBBS 10 254 TOSS J:\MAIL\PROCESS ;************************************************************************* ; KEEP THE OUTDIALERS FROM TRYING TO USE THE TIPX AND DIRECT CONNECT LINES ;************************************************************************* RESTRICT LINE 3-10 NO-MAIL ENDRESTRICT ;******************************************************** ; ZONE MAIL HOUR - keep one line free during zone mail hour ;******************************************************** RESTRICT LINE 2 RESTRICT TIME 04:00 05:00 NO-LOGON ENDRESTRICT ENDRESTRICT ;******************************************************** ; CRASH MAIL SEND RESTRICTIONS - always send crash mail ;******************************************************** RESTRICT TIME 00:05 23:55 SEND CRASH COST=>0 TYPE=CM ENDRESTRICT ;******************************************************** ; CONTROL POLLING OF THE HUB ;******************************************************** RESTRICT NODE 1:150/1 RESTRICT TIME 07:00 08:00 DOTBBS 0 255 POLL 1:150/1 CRASH SEND ALL COST > 0 1:150/1 ENDRESTRICT RESTRICT TIME 14:00 15:00 DOTBBS 0 255 POLL 1:150/1 CRASH SEND ALL COST > 0 1:150/1 ENDRESTRICT RESTRICT TIME 22:00 23:00 DOTBBS 0 255 POLL 1:150/1 CRASH SEND ALL COST > 0 1:150/1 ENDRESTRICT ENDRESTRICT ;******************************************************** ; ECHOLIST FOR THIS SYSTEM - The echos that I carry on my board ;******************************************************** MSGAREA SYSOP150 "SYSOP150" MSGAREA DE_FORSALE "DE_FORSALE" MSGAREA NETMAIL "NET MAIL" MSGAREA NET150 "NET150" MSGAREA 80XXX "Assembly Lang." MSGAREA BBSLAW "BBS Legal Issues" MSGAREA ECPROG "Programming" MSGAREA NEWTON "Newton" MSGAREA SF "SciFi & Fantasy" MSGAREA TBBS "TBBS Sysop Suppt" MSGAREA TRAINS "Railroading" ;MSGAREA NOPIRACY "Computer Crime" ;******************************************************** ; DIRECTORIES FROM WHICH FILE REQUESTS MAY BE MADE ;******************************************************** PICKUP H:\TBBS\DOWNLOAD\DOS PICKUP H:\TBBS\DOWNLOAD\WINDOWS PICKUP H:\TBBS\DOWNLOAD\CYBER PICKUP H:\TBBS\DOWNLOAD\TEXT PICKUP J:\RAIDAREA\BACKBONE PICKUP J:\RAIDAREA\NODEDIFF ;********************************************************* ; Magic Names - file requests may be made for these names ;********************************************************* DEFINE AREAS.BBS H:\TBBS\TIMS\AREAS.BBS DEFINE NODEDIFF J:\RAIDAREA\NODEDIFF\NODEDIFF.ZIP DEFINE FIDONET.NA J:\RAIDAREA\BACKBONE\FIDONET.NA DEFINE FIDONET.NO J:\RAIDAREA\BACKBONE\FIDONET.NO DEFINE BACKBONE.NA J:\RAIDAREA\BACKBONE\BACKBONE.NA DEFINE BACKBONE.NO J:\RAIDAREA\BACKBONE\BACKBONE.NO FLAME.CFG There are a number of detail points in this file (surprise!). One of the key features to look for is the specification of the output file, which is only used when you specify NOTBBS on the flame command line. A bit of confusion that I ran into in working with the flame configuration was that sometimes changes to the flame config didn't seem to change the processing! This led me to the discovery of FLAMEDIT. By running FLAMEDIT COMPILE after changing flame.cfg, I could be sure that the changes were compiled and would be used for the next execution of flame (unless you specify another name, Flamedit will compile to the file FLAME.PRM which is the default which Flame looks for when it runs). By running FLAMEDIT EXPORT I could verify the configuration that flame was executing (I don't recall seeing any of this documented in the TIMS manual). % % Configuration File for FLAME version 1.1 % % * updated 10/15/95 MJQ % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * REQUIRED SETUP * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % % *--------------------------------------------------------------------------* % * The full network address of this system in 3-D (zone:net/node) format * % *--------------------------------------------------------------------------* % % Node 1:150/7 % % % % *--------------------------------------------------------------------------* % * The path to your primary network mail area * % * * % * Syntax: Mail [NoScan] * % *--------------------------------------------------------------------------* % % Mail J:\MAIL\MAIL % % % % *--------------------------------------------------------------------------* % * The system's outbound mail directory * % *--------------------------------------------------------------------------* % % % Outbound J:\MAIL\Outbound % % % % *--------------------------------------------------------------------------* % * The path to your network file area(s) * % * Limit: 10 % * * % * Syntax: NetFile [NoToss] * % * NetFile [NoPkt] * % * NetFile [NoArcmail] * % * NetFile [NoEchoMail] * % *--------------------------------------------------------------------------* % % NetFile J:\MAIL\Inbound % % % NetFile J:\MAIL\FILES NetFile J:\MAIL\VERIF NetFile J:\MAIL\BADPW % % % % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * GENERAL SETUP * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % % % % *--------------------------------------------------------------------------* % * Additional network addresses this system is known as * % * Limit: 19 % *--------------------------------------------------------------------------* % % Aka 1:150/240 % % % % *--------------------------------------------------------------------------* % * Your point networks * % * Limit: 20 % *--------------------------------------------------------------------------* % % % PointNet 1501 % % % *--------------------------------------------------------------------------* % * Your name (35 characters max) * % *--------------------------------------------------------------------------* % % Name Mark Quarles % % % % *--------------------------------------------------------------------------* % * The system's primary origin line (59 characters max) * % *--------------------------------------------------------------------------* % % Origin The Unicorn TBBS * Hockessin, DE * (302) 234-9159 % % % % *--------------------------------------------------------------------------* % * The system's log file (path may be included) and log categories * % * Limit: 4 % *--------------------------------------------------------------------------* % % % * Flame_Log J:\LOG\AREAFIX.Log AREAFIX % * Flame_Log J:\LOG\STATS.LOG STATS Flame_Log J:\TBBS\FLAME.LOG % % Full_Screen % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * TBBS Messsage Base Configuration * % *--------------------------------------------------------------------------* % * Areas.Bbs MODE parameters define other configuration options. * % *--------------------------------------------------------------------------* % AREAS_BBS H:\TBBS\TIMS\AREAS.BBS % *--------------------------------------------------------------------------* % * Forces TBBS processing. This is the same as adding TBBS to the command * % * line for every execution. The TBBS message base and userlog files must * % * be available when running in TBBS mode. * % *--------------------------------------------------------------------------* % % % % % *--------------------------------------------------------------------------* % * TBBS_Limits * % * * % * These are the TBBS message base limits. Three numbers are expected. If * % * any of the numbers is zero the default value will be used. If any one of * % * the numbers is used all three must be entered. * % * * % * The three numbers represent: * % * * % * -1- The maximum message size to import into the message base * % * * % * Set the maximum message byte count to import into the TBBS message base. * % * Message text longer than this number will be truncated. If this is 0 * % * the default is to import the actual message size up to 30,000 bytes. * % * Use a negative number (eg -1) to set the parameter to the Config.Ctl * % * configured maximum message size. 30000 is the maximum size supported and * % * the default if limits are not provided. * % * * % * -2- The highest message number to allow in the message base * % * -3- The maximum number of messages in the message base * % * * % * Mail tossers typically load up the message base right to the brim. This * % * is great for the tosser and fine for some TBBS installations. But it's * % * not always what the SysOp and users need. Many systems run MFSQZ before * % * importing new mail. If the import then loads the message base to * % * capacity it might be 24 hours or more before callers, QSO, PIMP, and * % * online message entry/import operations will work. These values let you * % * control the message base load. * % * The default high message number is 64534, allowing 1000 higher message * % * numbers. The default maximum message count is 1000 less than the * % * Config.Ctl message count set via CEDIT. The maximum values are message * % * number 65534 and 60000 messages. * % *--------------------------------------------------------------------------* % % TBBS_Limits 30000 64534 12000 % % % % *--------------------------------------------------------------------------* % * Filename to use to stage messages whenever TBBS mode is not active or * % * whenever TBBS is running while mail is being tossed (nanny operation). * % * You must rename this file to .PKT following a successful TOSS/SCAN * % * operation to release the file for FLAME or TIMS to TOSS. Do not use .PKT * % * as an extension for this file definition. Rename the file to a .PKT for * % * processing by TIMS or FLAME. * % *--------------------------------------------------------------------------* % % TBBS_TIMS_TOSS_FILE TBBS.IN % % % % *--------------------------------------------------------------------------* % * Write NetMail addressed to these names as .Msgs and do not import into * % * the TBBS message base. Use quotes if a name contains a space. * % * Limit: 16 % *--------------------------------------------------------------------------* % % TBBS_Toss_Name_Filter Areafix Raid Allfix Areamgr filemgr "WM V3.10" % % % *--------------------------------------------------------------------------* % * Write NetMail with these files attached as .Msgs and do not import into * % * the TBBS message base. * % * Limit: 16 % *--------------------------------------------------------------------------* % % TBBS_Toss_File_Filter Nodediff.* Nodelist.* Fnews*.* Fmlydiff.* % *TBBS_Toss_File_Filter Nodelist.* % *TBBS_Toss_File_Filter Fnews*.* % *TBBS_TOSS_File_Filter Fmlydiff.* % % % *--------------------------------------------------------------------------* % * Defines the FidoNet address of the FidoNet -> internet gateway. This * % * address is used whenever an outbound Net Mail message with an addressee * % * of uucp but no destination FidoNet gateway address (as imported via * % * QSO) is found during a scan/pack operation. * % *--------------------------------------------------------------------------* % Internet_Gateway 1:150/1 % % *--------------------------------------------------------------------------* % * Defines whether and where to write MSGAREA definitions during AREASCVT * % * execution. Msgarea definitions can be included in Tims.Ctl for online * % * tossing. * % *--------------------------------------------------------------------------* % % TBBS_Msgarea_List H:\TBBS\TIMS\Msgarea.Txt % % % *--------------------------------------------------------------------------* % * Activates and defines a filename to write the rolloff operation summary. * % *--------------------------------------------------------------------------* % % % * TBBS_Rolloff_Log H:\TBBS\Rolloff.Log % % % % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * ECHOMAIL SETUP * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % % *--------------------------------------------------------------------------* % * The ASCII areas file * % * Limit: 16 % *--------------------------------------------------------------------------* % % % % *--------------------------------------------------------------------------* % * The binary areas file * % *--------------------------------------------------------------------------* % % Areas_Dat H:\TBBS\TIMS\Areas.Dat % % % % *--------------------------------------------------------------------------* % * Directory for messages with unknown areas and general problems. * % *--------------------------------------------------------------------------* % % % * Bad_Msgs_General H:\TBBS\TIMS\Bad_msgs % % % % *--------------------------------------------------------------------------* % * Directory for messages with security problems (secure and unallowed). * % *--------------------------------------------------------------------------* % % % * Bad_Msgs_Security H:\TBBS\TIMS\Bad_Echo % % % % *--------------------------------------------------------------------------* % * Generates a detailed ASCII log of all TOSS/SCAN activity. One log entry * % * is written for every message tossed and one entry is written for each * % * message scanned/exported to up/down links. If a message is exported to 6 * % * nodes 7 log entries will be written. Log entries are TOSS or SCAN * % * followed by the address, the EchoMail areaname, and the message size. * % * This file can get very large very fast on a busy hub. * % *--------------------------------------------------------------------------* % % % % Accounting_Log H:\TBBS\Account.Log % % % Routed_Echomail Bounce % % % *--------------------------------------------------------------------------* % * Whether or not to run in a secure environment. Secure mode refuses * % * echomail messages from addresses not listed in your AreasFile. * % *--------------------------------------------------------------------------* % Secure % % % *--------------------------------------------------------------------------* % * A list of addresses that do not need to be in your Areas_Dat to deliver * % * Limit: 16 % * echomail to your system. Connections with these addresses should be * % * secure in other ways such as session password. This is primarily so that * % * you can run secure mode even though one or more up-/down-link nodes * % * suffer from multiple address syndromes. * % *--------------------------------------------------------------------------* % % % % *--------------------------------------------------------------------------* % * Flag EchoMail messages with entry dates more than Old_Days ago as dupes. * % * If this parameter is selected messages with unrecognized date formats * % * and dates more than Old_Days in the future are also flagged as dupes. * % *--------------------------------------------------------------------------* % Dupe_Days 30 % % % *--------------------------------------------------------------------------* % * Nodes which should be added to the SEEN-BY lines of passing mail * % * Limit: 10 % * Your own address is added automatically. * % *--------------------------------------------------------------------------* % Add_To_Seenby 1:150/240 % % % *--------------------------------------------------------------------------* % * Areafix protection and optional bundle (.pkt) level passwords. * % * Limit: 255 % * All fields except Bundle Pw are required. * % *--------------------------------------------------------------------------* % % Net/Node Level Key Areafix Pw Bundle Pw (optional) % -------------- -------- ----- ---- -------- -------- Flame_Password 1:150/x 100 ABCD xxxxx % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * PACKER SETUP * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % % *--------------------------------------------------------------------------* % * The packer's routing file * % *--------------------------------------------------------------------------* % % Routing_File H:\TBBS\TIMS\Route.Cfg % % % % *--------------------------------------------------------------------------* % * Maximum size of a compressed mail file before starting a new file * % *--------------------------------------------------------------------------* % % Compressed_Mail_Max_Bytes 500000 % % % % *--------------------------------------------------------------------------* % * Globally disallows forwarding of netmail messages * % *--------------------------------------------------------------------------* % No_Forward_Mail % % % *--------------------------------------------------------------------------* % * Where to forward inbound network mail to. * % * - Outbound Area copies the netmail messages directly from inbound packet * % * to outbound packet. This is the default operation. * % * - Netmail Area writes netmail not addressed to one of your addresses to * % * .Msg files in the NetMail subdirectory. * % * Forwarding directly to Outbound is faster but does not allow external * % * processing as forwarding to (through) the netmail area does. * % *--------------------------------------------------------------------------* % % Forward_NetMail_To Outbound Area % % % Forward_NetMail_To Netmail Area % % % *--------------------------------------------------------------------------* % * Stop scanning and exit after processing this many messages. The * % * number can be set to exit after tossing or scanning the indicated number.* % * The default operation is to TOSS/SCAN without interruption. * % * * % * Syntax: Max_Msgs ### Scanned << this is the default if blank. * % * Syntax: Max_Msgs ### Tossed * % * * % *--------------------------------------------------------------------------* % Max_msgs 3000 Scanned % % Max_Msgs 3000 Tossed % % % % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * Inbound and outbound compressed mail setup * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % *--------------------------------------------------------------------------* % * Program and format definitions for archiving and unarchiving mail * % *--------------------------------------------------------------------------* % Archiver ZIP Signature 0 PK<0304> Extract pkunzip -o %1 *.pkt Add pkzip -a -o %1 %2 End ZIP Archiver PKARC Signature 0 <1a> ArcType 9 Extract pkunpak -r %1 *.pkt Add pkpak -oct -a %1 %2 End PKARC Archiver PAK Signature -2 ArcType 11 Extract pak e /wn %1 *.pkt Add pak a %1 %2 End PAK Archiver ARC7 Signature 0 <1a> ArcType 20 Extract arce %1 *.pkt Add arc amo %1 %2 End ARC7 Archiver LHA Signature 2 -lh Extract lha e %1 *.pkt Add lha a /m %1 %2 End LHA Archiver LHARC Signature 2 -lh Extract lha e %1 *.pkt Add lha a /m %1 %2 End LHARC Archiver ARJ Signature 0 <60ea> Extract arj e -n %1 *.pkt Add arj a -e %1 %2 End ARJ Archiver ZOO Signature 0 ZOO Extract zoo e:O %1 *.pkt Add zoo a: %1 %2 End ZOO % % % % *--------------------------------------------------------------------------* % * Assign defined ARCHIVERs to lists of nodes * % *--------------------------------------------------------------------------* % Archiver: Node: % ---- --------------- ---------------------------------> 64 % Pack ZIP 1:150/ALL % Pack ARJ % Pack ARC7 % % % *--------------------------------------------------------------------------* % * Define default ARCHIVER to assign to all other nodes. This defaults to * % * the first Archiver defined if not indicated here. * % *--------------------------------------------------------------------------* % % Default_Archiver ZIP % % % % *--------------------------------------------------------------------------* % * DOS command line to execute immediately after each incoming archive * % * is unpacked into packets. * % *--------------------------------------------------------------------------* % % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * REMAPPER SETUP * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % % *--------------------------------------------------------------------------* % * Remaps incoming Net Mail addressed to your Node or Aka according to the * % * Limit: 255 % * network mail 'name' field. * % * The name is a complete name that must match the incoming message name * % * field. Spaces are significant. Case is ignored. * % *--------------------------------------------------------------------------* % % New Address Name % ---------- --------------- ------------------------ % % % Remap_Name 1:150/240 SysOp % % % *--------------------------------------------------------------------------* % * Remaps according to the network mail destination zone:net/node field * % * Limit: 255 % *--------------------------------------------------------------------------* % % New Address Old Address % ---------- ----------- ----------- % *Remap_Node 1:270/101 1:1/0 % % % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * AREAFIX SETUP * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % % *--------------------------------------------------------------------------* % * Allow users to perform a rescan on requested areas (not available w/TBBS)* % *--------------------------------------------------------------------------* % % AF_Allow_Rescan % % % *--------------------------------------------------------------------------* % * Allow users to obtain a list of available areas they currently do not rcv* % *--------------------------------------------------------------------------* % AF_Allow_Query % % % *--------------------------------------------------------------------------* % * Shows the user if they are a feed on specific echos * % *--------------------------------------------------------------------------* % AF_Show_Feeds % % % *--------------------------------------------------------------------------* % * Instructs Areafix to save any processed inbound messages * % *--------------------------------------------------------------------------* % AF_Save_Messages % % % *--------------------------------------------------------------------------* % * Instructs Areafix to mark all outbound Areafix messages as Kill/Sent * % *--------------------------------------------------------------------------* % AF_Kill_Sent % % % *--------------------------------------------------------------------------* % * A list of alias names for incoming messages (AREAFIX is always included) * % * Limit: 16 % *--------------------------------------------------------------------------* % % AF_Alias AreaMgr MyPersonalAreaFileManager % % % *--------------------------------------------------------------------------* % * The file Areafix should return when prompted by a "-l" or %list * % *--------------------------------------------------------------------------* % AF_List_File J:\RAIDAREA\BACKBONE\FIDONET.NA % % % *--------------------------------------------------------------------------* % * The message text Areafix should return when prompted by a "-h" or %help * % *--------------------------------------------------------------------------* % % AF_Help_File J:\Sysopfil\Areafix.Hlp % % % *--------------------------------------------------------------------------* % * Enable Areafix to chain requests for echos. Areafix will manage this file* % *--------------------------------------------------------------------------* % AF_Forward_Que H:\TBBS\TIMS\Areafix.Que % % % *--------------------------------------------------------------------------* % * When a change is made Areafix will send a copy of the return message here* % * Limit: 10 % *--------------------------------------------------------------------------* % AF_Alert 1:150/7 % % % *--------------------------------------------------------------------------* % * Nodes Areafix can chain echomail requests to * % *--------------------------------------------------------------------------* % % List file: File format: Net/Node: Password: % --------------- ------------------------------- ------------ ----------- -------- AF_Forward_List J:\RAIDAREA\BACKBONE\FIDONET.NA Text 1:150/1 123456 % % % *--------------------------------------------------------------------------* % * Activate new area create and define the attributes of new area created * % *--------------------------------------------------------------------------* % AF_NewAreas Pass % % *--------------------------------------------------------------------------* % * Do not create directories for new .MSG areas created * % *--------------------------------------------------------------------------* % AF_NewAreas_Nodir % % % *--------------------------------------------------------------------------* % * The user access level of newly created areas (0 to 30000) * % *--------------------------------------------------------------------------* % AF_NewAreas_Level 100 % % % *--------------------------------------------------------------------------* % * The lock string for newly created areas (1 to 50 characters) * % *--------------------------------------------------------------------------* % AF_NewAreas_Lock A % % % *--------------------------------------------------------------------------* % * Nodes Areafix should add to newly created areas * % * Limit: 64 % *--------------------------------------------------------------------------* % % * AF_NewAreas_Add_Nodes 1:1234/5678 % % % *--------------------------------------------------------------------------* % * Create new areas only if the inbound message is from these nodes * % * Limit: 64 % *--------------------------------------------------------------------------* % % AF_NewAreas_Allow_Create <[zone:]net/node> AF_NEWAREAS_ALLOW_CREATE 1:150/175 1:150/1 1:150/360 1:150/205 1:150/230 1:150/5 % % *--------------------------------------------------------------------------* % * The directory off which Areafix will create the new message directory * % *--------------------------------------------------------------------------* % % AF_NewAreas_Direc J:\RAIDAREA\Msg % % % *--------------------------------------------------------------------------* % * The top part of the Notify functions response message * % *--------------------------------------------------------------------------* % AF_Notify_Header % % % *--------------------------------------------------------------------------* % * Nodes to exclude from a Notify session * % *--------------------------------------------------------------------------* % AF_Notify_Exclude 1:150/1 % % % *--------------------------------------------------------------------------* % * Include the echo list when doing a Notify * % *--------------------------------------------------------------------------* % AF_Notify_With_EchoList % % % *--------------------------------------------------------------------------* % * Filename for Areas_DAT file export (Areas.Txt) * % *--------------------------------------------------------------------------* % AF_Export_File H:\TBBS\TIMS\AREAS.BBS % % % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * DUPLICATE FILE SETUP * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % % % *--------------------------------------------------------------------------* % * The duplicate database file name (set to NUL to disable) * % *--------------------------------------------------------------------------* % % Dupe_History_File NUL % * Dupe_History_File H:\TBBS\Dupes.Dat % % % % *--------------------------------------------------------------------------* % * The maximum number of duplicate records for each area * % *--------------------------------------------------------------------------* % % Dupe_History_Count 2000 % % % % *--------------------------------------------------------------------------* % * Directory to save duplicate messages * % *--------------------------------------------------------------------------* % % *Bad_Msgs_Dupes H:\TBBS\Dupemsgs % % BufferSize Large (128k) % % BufferSize Medium (64k) % BufferSize Small (32k) % % % Video Direct % % Video Bios Video Dos % % Box_Type 1 % Box_Type 2 % Box_Type 3 % Box_Type 4 % % Box_Type 5 % % Color_StatusWin 14 23 4 71 Color_SpawnWin 14 3 4 71 Color_HistoryWin 14 112 4 71 Color_StatsWin 14 112 4 71 Color_Header 0 71 0 0 % % % % Swap Auto % Swap EMS % Swap XMS % Swap Disk % Swap_File $$Swap$$.TMP % % TOSS_LOG J:\log\ECHOTOSS.LOG % % CPD_Log H:\TBBS\CIRCULAR.LOG % % Path_Log J:\Log\Path.LOG % % No_Net_Toss % % % % Kill_Compressed_Mail After tossing pkts Private_Echomail SEND No_Private_Echomail % LOCAL_TIME % % % % % % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* % * End Configuration File * % *--------------------------------------------------------------------------* % *--------------------------------------------------------------------------* PROCESS.BAT This is the batch file that is executed to run the Flame processing on the Nanny machine. A couple of notes on some of the other (non Nanny related) executables called out in this file: LOGIT -=> a utility which I wrote that will make a timestamped entry in the dayfile with the command tail appended MONITOR -=> another utility which I wrote that sends a timestamped line with the command tail to a standalone terminal (this acts as a console job monitor for my nanny) DTIME -=> a part of the scheduling software which displays the time and date on the screen It should also be noted that I run RAID and TICK from a separate batchfile, and unless you are handling the Filebone, you don't need them. The RAID and TICK references in the RUNBBS.BAT file fit under the same commentary. @echo off logit "Nanny Mail Processing" logit "Flame Running" monitor Nanny Mail Processing copy j:\mail\packets\*.pkt j:\mail\files del j:\mail\packets\*.pkt H: CD \TBBS\TIMS FLAME NOTBBS TOSS SCAN PACK AREAFIX copy h:\tbbs\tims\tbbs.in j:\mail\PROCESS\99999999.pkt del tbbs.in dtime The key features in this file (the "magic" that seems to make it all work), are the FLAME line and the following two lines. The line: FLAME NOTBBS TOSS SCAN PACK AREAFIX causes flame to come up on the Nanny in NOTBBS mode (which means that it will not expect to toss directly into the TBBS message base and will therefor utilize the tbbs.in output file specified in flame.cfg for all messages destined for my system. It took me awhile to sort out that I needed all of the specific modes also specified on the command line in order to get the proper processing with Flame on the Nanny. The line after the FLAME line copies the output file generated by flame to the directory from which TIMS is doing its realtime tossing. The line after that deletes the Flame output file. RUNBBS.BAT It should be noted that the only error level that I am using is 20, for a single nightly maintenance event. I've left the other code in the batchfile so that I have the flexibility to easily go back to the processing on the BBS machine using external events in the unfortunate circumstance that the Nanny machine should die. Please note that the only lines which impact the operation of Flame are the TBBSPATH and CALL MAILPROC.BAT lines... the rest are specific to the mix of option modules, TDBS applications, and some specific processing that I run on my board. @echo off set tbbspath=c:\tbbs\menu;h:\tbbs\qa;c:\tbbs\HELP;c:\tbbs;h:\tbbs;h:\tbbs\download\text;H:\TBBS\TIMS :recycle c: cd \tbbs rem synchronize the tbbs machine clock with the server clock net clock \\DLC386 rem send the preconditioning strings to the modems RESET mltbbs /U /H /O:TIMS,TDBSOM,QSO,SYSOM,ICHG,TIGER IF ERRORLEVEL 25 GOTO MAIL_WINDOW if errorlevel 22 goto NOTIFY if errorlevel 20 goto maint if errorlevel 1 goto remdos goto exit rem send netmail to the nodes we are feeding so that they have an up rem to date list of what echos and file areas they are signed up for :NOTIFY logit "Running Areafix Notify, Areafix Export, and Raid Notify" H: CD \TBBS\TIMS FLAME AREAFIX NOTIFY FLAME AREAFIX EXPORT H: CD \RAID\RAID RAID NOTIFY 1:150/5 1:150/230 1:150/360 1:150/205 1:150/240 1:150/175 goto recycle rem this is where we invoke the tbbs aware mail processing once per day :MAIL_WINDOW rem call j:\tbbs\mailproc.bat GOTO recycle rem this is our nightly maintenance event :maint logit "External Event: Maintenance" rem call mailproc twice to process any .msg files sitting there and any rem that the first run of areafix generates call j:\tbbs\mailproc.bat call j:\tbbs\mailproc.bat rem since tstat doesn't properly recognize all high baud rates, we run this rem little utility to convert those baud rates as recorded in the dayfile down rem into a range that it *will* recognize logit "Converting baud rates in dayfile" c: cd \tbbs baud rem this little utility generates summaries by node of all mail activity rem to those nodes, as well as the last time they called us or we called them logit "Running Mailsum" mailsum c:\tbbs\tims.log logit "Compressing userlog" uledit /U login "Compressing userlog and rolling off old users" uledit /O:7 /U logit "copying userlog.bak to h:\tbbs\qa" copy c:\tbbs\userlog.bak h:\tbbs\qa\userlog.bak del c:\tbbs\userlog.bak logit "squeezing message base" mfsqz /A /M rem we keep the backup copies of the message base and userlog on a different rem machine - just in case the tbbs machine dies del h:\*.bak logit "Moving all .bak files to H:\" Del h:\*.bak copy c:\tbbs\*.bak h:\ del c:\tbbs\*.bak c: rem generate system statistics from the dayfile and tims logs logit "Running tstat and mstat" h: cd \tbbs\tstat tstat26 cd \tbbs\mstat mstat rem we maintain archives (month to date) of each of our logfiles, and only rem keep the current day as the active logfile. Just append the daily logfile rem to its counterpart archive file, and delete the daily logfile. logit "archiving *.lst and *.log files" COPY H:\TBBS\DAYFILE.ARC+C:\TBBS\DAYFILE.LST H:\TBBS\DAYFILE.TMP DEL C:\TBBS\DAYFILE.LST DEL H:\TBBS\DAYFILE.ARC REN H:\TBBS\DAYFILE.TMP DAYFILE.ARC COPY H:\TBBS\TIMS_LOG.ARC+C:\TBBS\TIMS.LOG H:\TBBS\TIMSLOG.TMP DEL H:\TBBS\TIMS_LOG.ARC DEL C:\TBBS\TIMS.LOG REN H:\TBBS\TIMSLOG.TMP TIMS_LOG.ARC COPY H:\TBBS\FLAMELOG.ARC+J:\TBBS\FLAME.LOG H:\TBBS\FLAMELOG.TMP DEL H:\TBBS\FLAMELOG.ARC DEL J:\TBBS\FLAME.LOG REN H:\TBBS\FLAMELOG.TMP FLAMELOG.ARC COPY H:\TBBS\TIGER.ARC+J:\TBBS\TIGER.LOG H:\TBBS\TIGERLOG.TMP DEL J:\TBBS\TIGER.LOG DEL H:\TBBS\TIGER.ARC REN H:\TBBS\TIGERLOG.TMP TIGER.ARC COPY H:\TBBS\TICK.ARC+J:\TBBS\TICK.LOG H:\TBBS\TICKLOG.TMP DEL J:\TBBS\TICK.LOG DEL H:\TBBS\TICK.ARC REN H:\TBBS\TICKLOG.TMP TICK.ARC rem run the postmaster processing to update the DNL files, etc. logit "running postmaster processing" c: cd \tbbs\postmstr dnlbldr.exe c:\tbbs\userlog.bbs rem perform the daily tape backups logit "performing tape backups" rem c: rem cd \tape rem tape BACKUP C:\TBBS\*.* /J /M /-R /S rem tape BACKUP H:\TBBS\QA\REGISTER.SVY /J /-R rem if it exists, process the latest nodediff c: cd \tbbs if not exist nodediff.* goto nodiff logit "processing nodediff" tbbsdiff tbbsnc dir node*.* >> c:\tbbs\dayfile.lst logit "deleting nodediff" del nodediff.* rem make sure we have the latest versions of the *.N* files rem for areafix to use :nodiff if not exist j:\mail\files\fidonet.na goto maintdn copy fidonet.na j:\raidarea\backbone\fidonet.na copy fidonet.no j:\raidarea\backbone\fidonet.no logit "copied new versions of fidonet.na/no to backbone" :maintdn :fini goto recycle :remdos mlhost echo TBBS 2.2 Remote Host: Hang-up to restart TBBS :exit MAILPROC.BAT This is the batchfile which runs Flame (as part of the external event on the BBS machine) in TBBS aware mode. Note that I only need to specify TBBS on the command line and all of the rest of the configuration in Flame.cfg will kick in automatically. The NOLINK and LINK ALL command lines are simply there to free up memory in my machine to allow it to handle extra large inbound bundles and are not germaine to the nanny processing. logit "External Event: Mail Processing" rem delete any leftover .BSY flags - sometimes tims gets confused and leaves some sitting around del j:\mail\outbound\*.bsy logit "Flame Running" H: CD \TBBS\TIMS FLAME TBBS NOLINK FLAME TBBS LINK ALL rem process any RAID requests logit "RAID running" h: cd \raid\raid raid AUTOCREATE RAID -rk rem process any tic's that have been received logit "Tick running" cd \raid\tick tick Ch:\raid\tick\tic.cfg >> h:\tbbs\tick.log cd \tbbs c: cd \tbbs Configuration and Autoexec Files These files are included so that you can see which memory managers, etc. I am using on the two machines. There is nothing special about them relative to Nanny processing, and they just serve to complete the picture relative to my configuration. The same goes for the Lantastic CONNECT.BAT files which are included. CONFIG.SYS on Nanny device=c:\dos\himem.sys device=c:\dos\emm386.exe dos=high,umb FILES=100 LASTDRIVE=Z BUFFERS=30 rem device driver for our screen saver device=burndev.sys Autoexec.BAT on Nanny path=c:\qemm;c:\;c:\util;c:\lantasti;c:\dos;j:\tbbs;c:\schedtsk rem start up the network on this machine call C:\LANTASTI\STARTNET.BAT prompt $P$G rem install and startup the screen saver burnout set TBBSPATH=j:\tbbs c: cd \schedtsk stproc monitor ******* Nanny System Startup ************* Config.Sys on BBS Machine DEVICE=C:\QEMM\QEMM386.SYS RAM R:1 BOOTENABLE:N ST:M rem device=c:\qemm\dos-up.sys @c:\qemm\dos-up.dat DEVICE=C:\QEMM\LOADHI.SYS /R:1 /SIZE=8880 C:\QEMM\QDPMI.SYS SWAPFILE=DPMI.SWP SWAPSIZE=1024 DOS=HIGH,UMB FILES=100 BUFFERS=30 STACKS=9,256 DEVICE=C:\QEMM\LOADHI.SYS /R:3 /SIZE=24608 C:\DEV\D011V109.SYS /D:MSCD000 /N:1 SHELL=C:\DOS\COMMAND.COM /P /E:1024 LASTDRIVE=Z c:\dos\mscdex /D:MSCD0001 /M:10 /E DEVICE=C:\QEMM\LOADHI.SYS /R:2 /SIZE=13648 C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI DEVICE=C:\QEMM\LOADHI.SYS /R:3 /SIZE=36896 C:\LANTASTI\SMC8000.DOS Autoexec.bat on BBS Machine @ECHO OFF SET PCTOOLS=C:\PCTOOLS\DATA PATH C:\PCTOOLS;C:\QEMM;C:\DOS;c:\util;c:\;c:\tbbs;c:\lantasti rem startup the network on this machine call C:\LANTASTI\STARTNET.BAT set tz=EST5 cd \ PROMPT $P$G SET MOUSE=C:\MOUSE C:\QEMM\LOADHI /R:2 /RES=20368 /SQT=E000-E3FF C:\MOUSE\MOUSE C:\QEMM\LOADHI /R:3 /LO C:\PCTOOLS\PC-CACHE /WRITE:OFF /MINI SET TEMP=C:\TEMP rem load the cdrom driver C:\QEMM\LOADHI /R:2 /RES=15968 /SQT=E000-E1FF C:\DOS\MSCDEX.EXE /D:MSCD000 /E /L:E c: cd \ REM ** The following two lines were added by the 2.2 INSTALL program: SET TBBSPATH=c:\TBBS\MENU;c:\TBBS\HELP c: cd \tbbs c:\tbbs\RUNBBS.BAT Nanny Lantastic CONNECT.BAT It should be noted that WAITFOR is a little utility that I wrote to delay execution for the specified number of seconds. This allows the machines to be in sync if they are coming up from a power failure before trying to connect to the drives on the other machine. waitfor 30 net use/DEFERRED j: \\ast486\c-drive net use/DEFERRED h: \\dlc386\c-drive BBS Machine Lantastic CONNECT.BAT waitfor 70 net use/DEFERRED h: \\dlc386\c-drive rem net use/DEFERRED lpt1: \\dlc386\@printer net use/DEFERRED j: \\ast486\c-drive ??