home *** CD-ROM | disk | FTP | other *** search
- /*
- * config.h -- configuration structure and stuff for Fnordadel
- *
- * 91Apr29 AA Extracted from ctdl.h and other places.
- */
-
- #ifndef _CONFIG_H
- #define _CONFIG_H
-
- #ifndef NUMBAUDS
- #include "modem.h"
- #endif
-
- typedef unsigned short OFFSET;
-
- /* Following #defines robbed from Hue, Jr.'s Cit-86 and modified at will */
- #define MAILSLOTS cfg.mailslots /* # mail msgs users can have */
- #define MAXROOMS cfg.maxrooms /* # of rooms allowed in system */
- #define SHARED_ROOMS cfg.sharedrooms /* # rooms shared with a system */
-
- #define MAXCODE 500 /* codebuffer inside cfg */
-
- typedef unsigned short ushort;
- typedef unsigned int uint;
-
- /*
- * Citadel programs use readSysTab() and writeSysTab() to write an image of
- * the external variables in RAM to disk, and later restore it. The image is
- * stored in CTDLTABL.SYS . If CTDLTABL.SYS is lost, CONFIGUR will
- * automatically reconstruct it the hard way when invoked, and write a new
- * CTDLTABL.SYS out when finished. CTDLTABL.SYS is always destroyed after
- * reading, to minimize the possibility of reading an out-of-date version.
- * In general, the technique works well and saves time and head-banging on
- * bootup. You should, however, note carefully the following caution:
- *
- * o Whenever you change the declarations in Ctdl.h you should:
- * --> destroy the current CTDLTABL.SYS file
- * --> recompile and reload all citadel programs which access CTDLTABL.SYS
- * -- currently CITADEL.TOS & CONFIGUR.TOS, plus utilities
- * --> use CONFIGUR.TOS to build a new CTDLTABL.SYS file
- *
- * If you ignore these warnings, little pixies will prick you in your
- * sleep for the rest of your life.
- */
-
- struct _cfgflags {
- /* user-oriented stuff */
- uint ENTEROK : 1; /* OK to enter messages anon */
- uint READOK : 1; /* unlogged folks can read mess */
- uint LOGINOK : 1; /* spontan. new accounts ok. */
- uint ROOMOK : 1; /* general folks can make rooms */
- uint INFOOK : 1;
- uint NOMAIL : 1; /* mail not allowed by default? */
- uint ALLDOOR : 1;
- uint ALLNET : 1; /* all users get net privvies */
- uint GETNAME : 1; /* force callers to login with
- name as well as password */
- uint KEEPHOLD : 1; /* keep held mail messages? */
- uint AUTOZEROLIMIT : 1;
-
- /* user configuration defaults */
- uint DEFSHOWTIME : 1;
- uint DEFLASTOLD : 1;
- uint DEFFLOORMODE : 1;
- uint DEFREADMORE : 1;
- uint DEFNUMLEFT : 1;
- uint DEFAUTONEW : 1;
-
- /* sysop-oriented stuff */
- uint AIDE_FORGET : 1; /* aides can forget rooms */
- uint SHOWRECD : 1; /* show "rec'd" flag in Mail>? */
- uint NOCHAT : 1; /* suppress chat attempts */
- uint DISKUSAGE : 1; /* do a df() after each dir */
- uint ARCHIVE_MAIL : 1; /* archive the sysop's mail */
- uint SYSOPSLEEP : 1; /* let Sysop sleep at console? */
- uint AIDEKILLROOM : 1; /* let Aides kill rooms? */
- uint VAPORIZE : 1;
-
- /* defaults */
- uint DEBUG : 1; /* turns debug printout on/off */
- uint FZAP : 1; /* default flags for +zap, */
- uint FNETLOG : 1; /* +netlog, */
- uint FNETDEB : 1; /* +netdebug */
-
- /* modem and net stuff */
- uint USA : 1; /* system in north america? */
- uint PATHALIAS : 1; /* do intelligent mail routing */
- uint FORWARD_MAIL : 1; /* forward mail thru this node? */
- uint SEARCH_BAUD : 1; /* do flip flop search for baud */
- uint CONNECTPROMPT : 1; /* prompt for CR when connected */
- uint MODEMCC : 1; /* modem do condition codes? */
- uint HAYES : 1; /* recognise codes in dialing */
- uint ANONNETMAIL : 1; /* will we accept net mail from */
- /* an unknown net node? */
- uint ANONFILEXFER : 1; /* will we do a file xfer */
- /* with an unknown net node? */
- uint PURGENET : 1; /* Purge net traffic w/ +purge? */
- uint KEEPDISCARDS : 1; /* keep files reject by loop */
- /* zapper or net purger? */
- /* misc stuff */
- uint BANNERBLB : 1;
- } ;
-
- struct config {
- ushort maxMSector; /* Max # of sectors (simulated) */
- ushort catChar; /* Location of next write in msg file */
- ushort catSector;
- ushort cryptSeed; /* xor crypt offset */
- long oldest; /* 32-bit ID# of first message in system*/
- long newest; /* 32-bit ID# of last message in system*/
-
- ushort logsize; /* number of log entries supported */
- ushort mailslots; /* mailslots..sharedrooms stolen */
- ushort maxrooms; /* shamelessly from Hue, Jr. & Cit-86 */
- ushort sharedrooms; /* and modified beyond all recognition */
- ushort maxmsgs; /* Max number of messages enterable per */
- /* user per room per login session */
- ushort maxmailmsgs; /* Max number of messages enterable per */
- /* user in Mail> per login session */
- int anonmailmax; /* Max size of mail msgs from users not */
- /* loggedIn. */
- int infomax; /* Max size of info files from users */
- /* not Aides or Co-Sysops. */
- ushort maxcalls; /* Max number of calls per user per day */
- ushort maxtime; /* Max number of minutes connect time */
- /* per user per day */
- ushort maxclosecalls; /* Max number close calls / user / day */
- ushort closetime; /* Max number of minutes separating two */
- /* calls to qualify as "close calls" */
- ushort mincalltime; /* minimum time credited for each call */
- ushort newusermsgs; /* # msgs to show new users; all, if 0 */
- ushort evtclosetime; /* if less than this many seconds to a */
- /* scheduled event, don't allow doors. */
- #if 0
- long flags; /* various boolean flags (see flags.h) */
- #else
- struct _cfgflags flags;
- #endif
- /*
- * system identification for users & networking.
- */
- OFFSET nodeName; /* name for networking */
- OFFSET nodeTitle; /* name displayed for callers */
- OFFSET nodeId; /* phone number/network id */
- OFFSET shell; /* shell to execute if you do an ^LO */
- OFFSET sysopName; /* user to throw SYSOP mail at. */
- OFFSET hub; /* for forwarding mail. */
- OFFSET organization; /* descriptive field for headers */
- OFFSET domain; /* Cit-86 style domain */
- /*
- * system directory offsets in codeBuf
- */
- OFFSET sysdir; /* where we keep various system files */
- OFFSET roomdir; /* where the room files go */
- OFFSET helpdir; /* .hlp, .mnu, .blb files */
- OFFSET msgdir; /* primary messagefile */
- OFFSET netdir; /* where net files are found */
- OFFSET auditdir; /* where audit files are found */
- OFFSET receiptdir; /* where sendfile stuff goes */
- OFFSET holddir; /* where held messages go */
-
- OFFSET modemSetup; /* string to set up the modem */
- OFFSET mCCs[NUMBAUDS]; /* strings for getting condition codes */
- /* from the modem */
- OFFSET dialPrefix; /* string to prefix telephone #'s with */
- OFFSET dialSuffix; /* string to append to telephone #'s */
-
- char sysPassword[60]; /* Remote sysop */
- char filter[128]; /* input character translation table */
- char codeBuf[MAXCODE]; /* strings buffer */
- char shave[8]; /* shave-and-a-haircut/2 bits pauses */
-
- ushort recSize; /* how many K we can recieve. */
- ushort numbanners; /* how many rotating banners. */
- ushort syswidth; /* default terminal width */
- char call_log; /* if > 0, keep a call-log. */
-
- int evtCount; /* number of events to deal with... */
- int floorCount; /* number of floors to deal with... */
- int arch_count; /* number of external archivers we have */
- int zap_count; /* loop zap table size */
- int netSize; /* How many on the net? */
-
- int poll_count; /* # polling events */
- long poll_delay; /* idle time before polling systems */
-
- char sysBaud; /* What's our baud rate going to be? */
- char probug;
- int connectDelay; /* wait after connect before autobauding*/
- int local_time; /* how long to wait 'til local hangup */
- int ld_time; /* how long to wait 'til l-d hangup */
- /*
- * accounting variables
- */
- long download; /* download limit... */
- char ld_cost; /* cost to mail to a l-d system */
- char hubcost; /* cost to route mail through #hub */
- } ;
-
-
- #endif /* _CONFIG_H */
-
-