Annotation of sbbs/src/sbbs3/scfgdefs.h, revision 1.1

1.1     ! root        1: /* scfgdefs.h */
        !             2: 
        !             3: /* Synchronet configuration structure (scfg_t) definition */
        !             4: 
        !             5: /* $Id: scfgdefs.h,v 1.26 2004/09/24 20:30:53 rswindell Exp $ */
        !             6: 
        !             7: /****************************************************************************
        !             8:  * @format.tab-size 4          (Plain Text/Source Code File Header)                    *
        !             9:  * @format.use-tabs true       (see http://www.synchro.net/ptsc_hdr.html)              *
        !            10:  *                                                                                                                                                     *
        !            11:  * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html         *
        !            12:  *                                                                                                                                                     *
        !            13:  * This program is free software; you can redistribute it and/or                       *
        !            14:  * modify it under the terms of the GNU General Public License                         *
        !            15:  * as published by the Free Software Foundation; either version 2                      *
        !            16:  * of the License, or (at your option) any later version.                                      *
        !            17:  * See the GNU General Public License for more details: gpl.txt or                     *
        !            18:  * http://www.fsf.org/copyleft/gpl.html                                                                                *
        !            19:  *                                                                                                                                                     *
        !            20:  * Anonymous FTP access to the most recent released source is available at     *
        !            21:  * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net     *
        !            22:  *                                                                                                                                                     *
        !            23:  * Anonymous CVS access to the development source and modification history     *
        !            24:  * is available at cvs.synchro.net:/cvsroot/sbbs, example:                                     *
        !            25:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs login                       *
        !            26:  *     (just hit return, no password is necessary)                                                     *
        !            27:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src                *
        !            28:  *                                                                                                                                                     *
        !            29:  * For Synchronet coding style and modification guidelines, see                                *
        !            30:  * http://www.synchro.net/source.html                                                                          *
        !            31:  *                                                                                                                                                     *
        !            32:  * You are encouraged to submit any modifications (preferably in Unix diff     *
        !            33:  * format) via e-mail to [email protected]                                                                      *
        !            34:  *                                                                                                                                                     *
        !            35:  * Note: If this box doesn't appear square, then you need to fix your tabs.    *
        !            36:  ****************************************************************************/
        !            37: 
        !            38: #include "sbbsdefs.h"
        !            39: 
        !            40: #ifndef _SCFGDEFS_H_
        !            41: #define _SCFGDEFS_H_
        !            42: 
        !            43: typedef struct {                        /* Message sub board info */
        !            44:        char    code[LEN_EXTCODE+1];            /* Internal code (with optional lib prefix) */
        !            45:        char    code_suffix[LEN_CODE+1];        /* Eight character code suffix */
        !            46:        char    lname[LEN_SLNAME+1],            /* Short name - used for prompts */
        !            47:                        sname[LEN_SSNAME+1],            /* Long name - used for listing */
        !            48:                        arstr[LEN_ARSTR+1],                     /* Access requirements */
        !            49:                        read_arstr[LEN_ARSTR+1],        /* Read requirements */
        !            50:                        post_arstr[LEN_ARSTR+1],        /* Post requirements */
        !            51:                        op_arstr[LEN_ARSTR+1],          /* Operator requirements */
        !            52:                        mod_arstr[LEN_ARSTR+1],         /* Moderated user requirements */
        !            53:                        qwkname[11],                            /* QWK name - only 10 chars */
        !            54:                        data_dir[LEN_DIR+1],            /* Data file directory */
        !            55:                        origline[51],                           /* Optional EchoMail origin line */
        !            56:                        post_sem[LEN_DIR+1],            /* Semaphore file for this sub */
        !            57:                        tagline[81],                            /* Optional QWK net tag line */
        !            58:                        newsgroup[LEN_DIR+1];           /* Newsgroup name */
        !            59:        uchar   *ar,
        !            60:                        *read_ar,
        !            61:                        *post_ar,
        !            62:                        *op_ar,
        !            63:                        *mod_ar;
        !            64:        ushort  grp,                                            /* Which group this sub belongs to */
        !            65:                        ptridx,                                         /* Index into pointer file */
        !            66:                        qwkconf,                                        /* QWK conference number */
        !            67:                        maxage;                                         /* Max age of messages (in days) */
        !            68:        ulong   misc,                                           /* Miscellaneous flags */
        !            69:                        maxmsgs,                                        /* Max number of messages allowed */
        !            70:                        maxcrcs;                                        /* Max number of CRCs to keep */
        !            71:        faddr_t faddr;                                          /* FidoNet address */
        !            72: 
        !            73: } sub_t;
        !            74: 
        !            75: typedef struct {                        /* Message group info */
        !            76:        char    lname[LEN_GLNAME+1],            /* Short name */
        !            77:                        sname[LEN_GSNAME+1],            /* Long name */
        !            78:                        arstr[LEN_ARSTR+1],                     /* Access requirements */
        !            79:                        code_prefix[LEN_CODE+1];        /* Prefix for internal code */
        !            80:        uchar   *ar;
        !            81: 
        !            82: } grp_t;
        !            83: 
        !            84: typedef struct {                        /* Transfer Directory Info */
        !            85:        char    code[LEN_EXTCODE+1];            /* Internal code (with optional lib prefix) */
        !            86:        char    code_suffix[LEN_CODE+1];        /* Eight character code suffix */
        !            87:        char    lname[LEN_SLNAME+1],            /* Short name - used for prompts */
        !            88:                        sname[LEN_SSNAME+1],            /* Long name - used for listing */
        !            89:                        arstr[LEN_ARSTR+1],                     /* Access Requirements */
        !            90:                        ul_arstr[LEN_ARSTR+1],          /* Upload Requirements */
        !            91:                        dl_arstr[LEN_ARSTR+1],          /* Download Requirements */
        !            92:                        ex_arstr[LEN_ARSTR+1],          /* Exemption Requirements (credits) */
        !            93:                        op_arstr[LEN_ARSTR+1],          /* Operator Requirements */
        !            94:                        path[LEN_DIR+1],                        /* Path to directory for files */
        !            95:                        exts[41],                       /* Extensions allowed */
        !            96:                        upload_sem[LEN_DIR+1],          /* Upload semaphore file */
        !            97:                        data_dir[LEN_DIR+1];            /* Directory where data is stored */
        !            98:        uchar   *ar,
        !            99:                        *ul_ar,
        !           100:                        *dl_ar,
        !           101:                        *ex_ar,
        !           102:                        *op_ar,
        !           103:                        seqdev,                                         /* Sequential access device number */
        !           104:                        sort;                                           /* Sort type */
        !           105:        ushort  maxfiles,                                       /* Max number of files allowed */
        !           106:                        maxage,                                         /* Max age of files (in days) */
        !           107:                        up_pct,                                         /* Percentage of credits on uloads */
        !           108:                        dn_pct,                                         /* Percentage of credits on dloads */
        !           109:                        lib;                                            /* Which library this dir is in */
        !           110:        ulong   misc;                                           /* Miscellaneous bits */
        !           111: 
        !           112: } dir_t;
        !           113: 
        !           114: typedef struct {                        /* Transfer Library Information */
        !           115:        char    lname[LEN_GLNAME+1],            /* Short Name - used for prompts */
        !           116:                        sname[LEN_GSNAME+1],            /* Long Name - used for listings */
        !           117:                        arstr[LEN_ARSTR+1],                     /* Access Requirements */
        !           118:                        code_prefix[LEN_CODE+1],        /* Prefix for internal code */
        !           119:                        parent_path[48];                        /* Parent for dir paths */
        !           120:        uchar   *ar;
        !           121:        ushort  offline_dir;                            /* Offline file directory */
        !           122: 
        !           123: } lib_t;
        !           124: 
        !           125: typedef struct {                        /* Gfile Section Information */
        !           126:        char    code[LEN_CODE+1];                       /* Eight character code */
        !           127:        char    name[41],                                       /* Name of section */
        !           128:                        arstr[LEN_ARSTR+1];                     /* Access requirements */
        !           129:        uchar   *ar;
        !           130: 
        !           131: } txtsec_t;
        !           132: 
        !           133: typedef struct {                                               /* External Section Information */
        !           134:        char    code[LEN_CODE+1];                       /* Eight character code */
        !           135:        char    name[41],                                       /* Name of section */
        !           136:                        arstr[LEN_ARSTR+1];                     /* Access requirements */
        !           137:        uchar   *ar;
        !           138: 
        !           139: } xtrnsec_t;
        !           140: 
        !           141: typedef struct {                                               /* Swappable executable */
        !           142:        char    cmd[LEN_CMD+1];                         /* Program name */
        !           143: 
        !           144: } swap_t;
        !           145: 
        !           146: typedef struct {                                               /* OS/2 executable */
        !           147:        char    name[13];                                       /* Program name */
        !           148:        ulong   misc;                                           /* See OS2PGM_* */
        !           149: 
        !           150: } natvpgm_t;
        !           151: 
        !           152: typedef struct {                                               /* External Program Information */
        !           153:        char    code[LEN_CODE+1];                       /* Internal code for program */
        !           154:        char    name[41],                                       /* Name of External */
        !           155:                        arstr[LEN_ARSTR+1],                     /* Access Requirements */
        !           156:                        run_arstr[LEN_ARSTR+1],         /* Run Requirements */
        !           157:                        cmd[LEN_CMD+1],                         /* Command line */
        !           158:                        clean[LEN_CMD+1],                       /* Clean-up command line */
        !           159:                        path[LEN_DIR+1];                        /* Start-up path */
        !           160:        uchar   *ar,
        !           161:                        *run_ar;
        !           162:        uchar   type,                                           /* What type of external program */
        !           163:             event,                      /* Execute upon what event */
        !           164:                        textra,                                         /* Extra time while in this program */
        !           165:                        maxtime;                                        /* Maximum time allowed in this door */
        !           166:        ushort  sec;                                            /* Section this program belongs to */
        !           167:        ulong   cost,                                           /* Cost to run in credits */
        !           168:                        misc;                                           /* Misc. bits - ANSI, DOS I/O etc. */
        !           169: 
        !           170: } xtrn_t;
        !           171: 
        !           172: typedef struct {                                               /* External Page program info */
        !           173:        char    cmd[LEN_CMD+1],                         /* Command line */
        !           174:                        arstr[LEN_ARSTR+1];                     /* ARS for this chat page */
        !           175:        uchar   *ar;
        !           176:        ulong   misc;                                           /* Intercept I/O */
        !           177: 
        !           178: } page_t;
        !           179: 
        !           180: 
        !           181: typedef struct {                                               /* Chat action set */
        !           182:        char    name[26];                                       /* Name of set */
        !           183: 
        !           184: } actset_t;
        !           185: 
        !           186: typedef struct {                                               /* Chat action info */
        !           187:        char    cmd[LEN_CHATACTCMD+1],          /* Command word */
        !           188:                        out[LEN_CHATACTOUT+1];          /* Output */
        !           189:        ushort  actset;                                         /* Set this action belongs to */
        !           190: 
        !           191: } chatact_t;
        !           192: 
        !           193: typedef struct {                                               /* Gurus */
        !           194:        char    code[LEN_CODE+1];
        !           195:        char    name[26],
        !           196:                        arstr[LEN_ARSTR+1];
        !           197:        uchar   *ar;
        !           198: 
        !           199: } guru_t;
        !           200: 
        !           201: typedef struct {                                               /* Chat Channel Information */
        !           202:        char    code[LEN_CODE+1];
        !           203:        char    name[26];                                       /* Channel description */
        !           204:        char    arstr[LEN_ARSTR+1];                     /* Access requirements */
        !           205:        uchar   *ar;
        !           206:        ushort  actset,                                         /* Set of actions used in this chan */
        !           207:                        guru;                                           /* Guru file number */
        !           208:        ulong   cost,                                           /* Cost to join */
        !           209:                        misc;                                           /* Misc. bits CHAN_* definitions */
        !           210: 
        !           211: } chan_t;
        !           212: 
        !           213: typedef struct {                        /* Modem Result codes info */
        !           214:        ushort  code,                                           /* Numeric Result Code */
        !           215:                        cps,                                /* Average Transfer CPS */
        !           216:                        rate;                               /* DCE Rate (Modem to Modem) */
        !           217:        char    str[LEN_MODEM+1];               /* String to use for description */
        !           218: 
        !           219: } mdm_result_t;
        !           220: 
        !           221: typedef struct {                        /* Transfer Protocol information */
        !           222:        char    mnemonic;                                       /* Letter to select this protocol */
        !           223:        char    name[26],                                       /* Name of protocol */
        !           224:                        arstr[LEN_ARSTR+1],                     /* ARS */
        !           225:                        ulcmd[LEN_CMD+1],                       /* Upload command line */
        !           226:                        dlcmd[LEN_CMD+1],                       /* Download command line */
        !           227:                        batulcmd[LEN_CMD+1],            /* Batch upload command line */
        !           228:                        batdlcmd[LEN_CMD+1],            /* Batch download command line */
        !           229:                        blindcmd[LEN_CMD+1],            /* Blind upload command line */
        !           230:                        bicmd[LEN_CMD+1];                       /* Bidirectional command line */
        !           231:        uchar   *ar;
        !           232:        ulong   misc;                                           /* Miscellaneous bits */
        !           233: 
        !           234: } prot_t;
        !           235: 
        !           236: typedef struct {                        /* Extractable file types */
        !           237:        char    ext[4];                                         /* Extension */
        !           238:        char    arstr[LEN_ARSTR+1],                     /* Access Requirements */
        !           239:                        cmd[LEN_CMD+1];                         /* Command line */
        !           240:        uchar   *ar;
        !           241: 
        !           242: } fextr_t;
        !           243: 
        !           244: typedef struct {                                               /* Compressable file types */
        !           245:        char    ext[4];                                         /* Extension */
        !           246:        char    arstr[LEN_ARSTR+1],                     /* Access Requirements */
        !           247:                        cmd[LEN_CMD+1];                         /* Command line */
        !           248:        uchar   *ar;
        !           249: 
        !           250: } fcomp_t;
        !           251: 
        !           252: typedef struct {                        /* Viewable file types */
        !           253:        char    ext[4];                                         /* Extension */
        !           254:        char    arstr[LEN_ARSTR+1],                     /* Access Requirements */
        !           255:                        cmd[LEN_CMD+1];                         /* Command line */
        !           256:        uchar   *ar;
        !           257: 
        !           258: } fview_t;
        !           259: 
        !           260: typedef struct {                        /* Testable file types */
        !           261:        char    ext[4];                                         /* Extension */
        !           262:        char    arstr[LEN_ARSTR+1],                     /* Access requirement */
        !           263:                        cmd[LEN_CMD+1],                         /* Command line */
        !           264:                        workstr[41];                            /* String to display while working */
        !           265:        uchar   *ar;
        !           266: 
        !           267: } ftest_t;
        !           268: 
        !           269: typedef struct {                                               /* Download events */
        !           270:        char    ext[4];
        !           271:        char    arstr[LEN_ARSTR+1],                     /* Access requirement */
        !           272:                        cmd[LEN_CMD+1],                         /* Command line */
        !           273:                        workstr[41];                            /* String to display while working */
        !           274:        uchar   *ar;
        !           275: 
        !           276: } dlevent_t;
        !           277: 
        !           278: typedef struct {                                               /* External Editors */
        !           279:        char    code[LEN_CODE+1],
        !           280:                        name[41],                                       /* Name (description) */
        !           281:                        arstr[LEN_ARSTR+1],                     /* Access Requirement */
        !           282:                        lcmd[LEN_CMD+1],                        /* Local command line */
        !           283:                        rcmd[LEN_CMD+1];                        /* Remote command line */
        !           284:        uchar   *ar;
        !           285:        ulong   misc;                                           /* Misc. bits */
        !           286:        uchar   type;                                           /* Drop file type */
        !           287: 
        !           288: } xedit_t;
        !           289: 
        !           290: 
        !           291: typedef struct {                                               /* Generic Timed Event */
        !           292:        char    code[LEN_CODE+1],                       /* Internal code */
        !           293:                        days,                                           /* week days to run event */
        !           294:                        dir[LEN_DIR+1],                         /* Start-up directory */
        !           295:                        cmd[LEN_CMD+1];                         /* Command line */
        !           296:        ushort  node,                                           /* Node to execute event */
        !           297:                        time,                                           /* Time to run event */
        !           298:                        freq;                                           /* Frequency to run event */
        !           299:        ulong   misc,                                           /* Misc bits */
        !           300:                        mdays;                                          /* days of month (if non-zero) to run event */
        !           301:        time_t  last;                                           /* Last time event ran */
        !           302: 
        !           303: } event_t;
        !           304: 
        !           305: typedef struct {                                               /* QWK Network Hub */
        !           306:        char    id[LEN_QWKID+1],                        /* System ID of Hub */
        !           307:                        *mode,                                          /* Mode for Ctrl-A codes for ea. sub */
        !           308:                        days,                                           /* Days to call-out on */
        !           309:                        call[LEN_CMD+1],                        /* Call-out command line to execute */
        !           310:                        pack[LEN_CMD+1],                        /* Packing command line */
        !           311:                        unpack[LEN_CMD+1];                      /* Unpacking command line */
        !           312:        ushort  time,                                           /* Time to call-out */
        !           313:                        node,                                           /* Node to do the call-out */
        !           314:                        freq,                                           /* Frequency of call-outs */
        !           315:                        subs,                                           /* Number Sub-boards carried */
        !           316:                        *sub,                                           /* Number of local sub-board for ea. */
        !           317:                        *conf;                                          /* Conference number of ea. */
        !           318:        time_t  last;                                           /* Last network attempt */
        !           319: 
        !           320: } qhub_t;
        !           321: 
        !           322: typedef struct {                                               /* PCRelay/PostLink Hub */
        !           323:        char    days,                                           /* Days to call-out on */
        !           324:                        name[11],                                       /* Site Name of Hub */
        !           325:                        call[LEN_CMD+1];                        /* Call-out command line to execute */
        !           326:        ushort  time,                                           /* Time to call-out */
        !           327:                        node,                                           /* Node to do the call-out */
        !           328:                        freq;                                           /* Frequency of call-outs */
        !           329:        time_t  last;                                           /* Last network attempt */
        !           330: 
        !           331: } phub_t;
        !           332: 
        !           333: 
        !           334: typedef struct {                                               /* Command Shells */
        !           335:        char    code[LEN_CODE+1];
        !           336:        char    name[41],                                       /* Name (description) */
        !           337:                        arstr[LEN_ARSTR+1];                     /* Access Requirement */
        !           338:        uchar   *ar;
        !           339:        ulong   misc;
        !           340: 
        !           341: } shell_t;
        !           342: 
        !           343: typedef struct {
        !           344:        uchar   key;
        !           345:        char    cmd[LEN_CMD+1];
        !           346: } hotkey_t;
        !           347: 
        !           348: typedef struct 
        !           349: {
        !           350:        DWORD           size;                           /* sizeof(scfg_t) */
        !           351:        BOOL            prepped;                        /* TRUE if prep_cfg() has been used */
        !           352: 
        !           353:        grp_t           **grp;                          /* Each message group */
        !           354:        ushort          total_grps;             /* Total number of groups */
        !           355:        sub_t           **sub;                          /* Each message sub */
        !           356:        ushort          total_subs;             /* Total number of subs */
        !           357:        lib_t           **lib;                          /* Each library */
        !           358:        ushort          total_libs;             /* Total number of libraries */
        !           359:        dir_t           **dir;                          /* Each message directory */
        !           360:        ushort          total_dirs;             /* Total number of directories */
        !           361:        txtsec_t        **txtsec;                       /* Each text section */
        !           362:        ushort          total_txtsecs;          /* Total number of text sections */
        !           363:        xtrnsec_t       **xtrnsec;                      /* Each external section */
        !           364:        ushort          total_xtrnsecs;         /* Total number of external sections */
        !           365:        xtrn_t          **xtrn;                         /* Each external program */
        !           366:        ushort          total_xtrns;            /* Total number of externals */
        !           367:        mdm_result_t *mdm_result;               /* Each Modem Result Code */
        !           368:        ushort          mdm_results;            /* Total number of Modem Results */
        !           369:        prot_t          **prot;                         /* Each Transfer Protocol */
        !           370:        ushort          total_prots;            /* Total Transfer Protocols */
        !           371:        fextr_t         **fextr;                        /* Each extractable file type */
        !           372:        ushort          total_fextrs;           /* Total extractable file types */
        !           373:        fcomp_t         **fcomp;                        /* Each compressable file type */
        !           374:        ushort          total_fcomps;           /* Total */
        !           375:        fview_t         **fview;                        /* Each veiwable file type */
        !           376:        ushort          total_fviews;           /* Total viewable file types */
        !           377:        ftest_t         **ftest;                        /* Each testable file type */
        !           378:        ushort          total_ftests;           /* Total testable file types */
        !           379:        xedit_t         **xedit;                        /* Each external editor */
        !           380:        ushort          total_xedits;           /* Total external editors */
        !           381:        qhub_t          **qhub;                         /* QWK network hubs */
        !           382:        ushort          total_qhubs;            /* Total qwk network hubs */
        !           383:        phub_t          **phub;                         /* PostLink/PCRelay network hubs */
        !           384:        ushort          total_phubs;            /* Total PostLink/PCRelay hubs */
        !           385:        chan_t          **chan;                         /* Each chat channel */
        !           386:        ushort          total_chans;            /* Total number of chat channels */
        !           387:        chatact_t       **chatact;                      /* Chat action commands */
        !           388:        ushort       total_chatacts;     /* Total number of action commands */
        !           389:        actset_t        **actset;                       /* Name of action set */
        !           390:        ushort          total_actsets;          /* Total number of action sets */
        !           391:        page_t          **page;                         /* External chat page */
        !           392:        ushort          total_pages;            /* Total number of external pages */
        !           393:        event_t         **event;                        /* Timed events */
        !           394:        ushort          total_events;           /* Total number of timed events */
        !           395:        dlevent_t       **dlevent;                      /* Download events */
        !           396:        ushort          total_dlevents;         /* Total download events */
        !           397:        faddr_t         *faddr;                         /* FidoNet addresses */
        !           398:        ushort          total_faddrs;           /* Total number of fido addresses */
        !           399:        swap_t          **swap;                         /* Swapping externals */
        !           400:        ushort          total_swaps;            /* Total number of non-swap xtrns */
        !           401:        natvpgm_t       **natvpgm;                      /* Native (32-bit) Programs */
        !           402:        ushort          total_natvpgms;         /* Total number of native pgms */
        !           403:        guru_t          **guru;                         /* Gurus */
        !           404:        ushort          total_gurus;            /* Total number of guru files */
        !           405:        shell_t         **shell;                        /* Command shells */
        !           406:        ushort          total_shells;           /* Total number of command shells */
        !           407:        hotkey_t        **hotkey;                       /* Global hot keys */
        !           408:        ushort          total_hotkeys;          /* Total number of global hot keys */
        !           409: 
        !           410:                                                                        /* COM port registers: */
        !           411:        ushort          com_base,                       /* COM base address */
        !           412:                                com_irq;                        /* irq line number         */
        !           413:        ulong           com_rate;                       /* DTE rate in bps         */
        !           414:        char            com_port;                       /* Number of COM port  */
        !           415: 
        !           416:                                                                        /* Modem command strings */
        !           417:        char    mdm_init[64],                   /* Initialization */
        !           418:                        mdm_spec[64],           /* Special Initialization */
        !           419:                        mdm_term[64],           /* Terminal Initialization String */
        !           420:                        mdm_dial[64],           /* Dial */
        !           421:                        mdm_offh[64],           /* Off hook */
        !           422:                        mdm_answ[64],           /* Answer */
        !           423:                        mdm_hang[64];           /* Hang-up */
        !           424:        ulong   mdm_misc;                       /* Misc bits used for flags */
        !           425:        ushort  mdm_reinit;             /* Modem reinitialization minute count */
        !           426:        ushort  mdm_ansdelay;           /* Modem seconds to delay after answer */
        !           427:        uchar   mdm_rings;                      /* Rings to wait till answer */
        !           428: 
        !           429:        long    sys_misc;                       /* System Misc Settings */
        !           430:        char    sys_pass[41];           /* System Pass Word */
        !           431:        char    sys_name[41];           /* System Name */
        !           432:        char    sys_id[LEN_QWKID+1];/* System ID for QWK Packets */
        !           433:        char    sys_psname[13];         /* PostLink and PCRelay Site Name */
        !           434:        ulong   sys_psnum;                      /* PostLink and PCRelay Site Number */
        !           435:        char    sys_inetaddr[128];      /* System's internet address */
        !           436:        char    sys_location[41];       /* System Location */
        !           437:        short   sys_timezone;           /* Time Zone of BBS */
        !           438:        char    sys_daily[LEN_CMD+1];      /* Daily event */
        !           439:        char    sys_logon[LEN_CMD+1];      /* Logon event */
        !           440:        char    sys_logout[LEN_CMD+1];     /* Logoff event */
        !           441:        ushort  sys_pwdays;             /* Max days between password change */
        !           442:        ushort  sys_deldays;            /* Days to keep deleted users */
        !           443:        ushort  sys_autodel;            /* Autodeletion after x days inactive */
        !           444:        ushort  sys_nodes;                      /* Number of nodes on system */
        !           445:        char    sys_op[41];         /* Name of system operator */
        !           446:        char    sys_guru[41];       /* Name of system guru */
        !           447:        uchar   sys_exp_warn;           /* Days left till expire to notify */
        !           448:        char    sys_def_stat;           /* Default status line */
        !           449:        char    sys_phonefmt[LEN_PHONE+1];      /* format of phone numbers */
        !           450:        ushort  sys_lastnode;           /* Last displayable node number */
        !           451:        ushort  sys_autonode;           /* First node number for autonode */
        !           452:        char    sys_chat_arstr[LEN_ARSTR+1];    /* chat override */
        !           453:        uchar * sys_chat_ar;
        !           454: 
        !           455:        long    msg_misc;                       /* Global Message-Related Settings */
        !           456:        long    file_misc;                      /* File Misc Settings */
        !           457:        long    xtrn_misc;                      /* External Programs Misc Settings */
        !           458: 
        !           459:        char    node_comspec[LEN_CMD+1];        /* DOS COMMAND.COM to use */
        !           460:        char    node_editor[LEN_CMD+1]; /* Local text editor command line to use */
        !           461:        char    node_viewer[LEN_CMD+1]; /* Local text viewer command line */
        !           462:        char    node_daily[LEN_CMD+1];  /* Name of node's daily event */
        !           463:        uchar   node_scrnlen;           /* Length of screen (rows) */
        !           464:        uchar   node_scrnblank;         /* Min of inactivity for blank screen */
        !           465:        ulong   node_misc;                      /* Misc bits for node setup */
        !           466:        ushort  node_valuser;           /* User validation mail goes to */
        !           467:        ushort  node_ivt;                       /* Time-slice APIs */
        !           468:        uchar   node_swap;                      /* Swap types allowed */
        !           469:        char    node_swapdir[LEN_DIR+1];        /* Swap directory */
        !           470:        ushort  node_minbps;            /* Minimum connect rate of this node */
        !           471:        ushort  node_num;                       /* Local node number of this node */
        !           472:        char    node_phone[13],         /* Phone number of this node */
        !           473:                                        node_name[41];          /* Name of this node */
        !           474:        char    node_arstr[LEN_ARSTR+1]; /* Node minimum requirements */
        !           475:        uchar   *node_ar;
        !           476:        ulong   node_cost;                      /* Node cost to call - in credits */
        !           477:        uchar   node_dollars_per_call;  /* Billing Node Dollars Per Call */
        !           478:        ushort  node_sem_check;         /* Seconds between semaphore checks */
        !           479:        ushort  node_stat_check;        /* Seconds between statistic checks */
        !           480: 
        !           481:        char    new_install;            /* This is a brand new installation */
        !           482:        char    new_pass[41];           /* New User Password */
        !           483:        char    new_magic[21];          /* New User Magic Word */
        !           484:        char    new_sif[LEN_SIFNAME+1];                 /* New User SIF Questionaire */
        !           485:        char    new_sof[LEN_SIFNAME+1];                 /* New User SIF Questionaire output SIF */
        !           486:        char    new_level;                      /* New User Main Level */
        !           487:        ulong   new_flags1;             /* New User Main Flags from set #1*/
        !           488:        ulong   new_flags2;             /* New User Main Flags from set #2*/
        !           489:        ulong   new_flags3;             /* New User Main Flags from set #3*/
        !           490:        ulong   new_flags4;             /* New User Main Flags from set #4*/
        !           491:        ulong   new_exempt;                     /* New User Exemptions */
        !           492:        ulong   new_rest;                       /* New User Restrictions */
        !           493:        ulong   new_cdt;                        /* New User Credits */
        !           494:        ulong   new_min;                        /* New User Minutes */
        !           495:        char    new_xedit[LEN_CODE+1];          /* New User Default Editor */
        !           496:        ushort  new_shell;                      /* New User Default Command Set */
        !           497:        ulong   new_misc;                       /* New User Miscellaneous Defaults */
        !           498:        ushort  new_expire;             /* Expiration days for new user */
        !           499:        uchar   new_prot;                       /* New User Default Download Protocol */
        !           500:        char    val_level[10];          /* Validation User Main Level */
        !           501:        ulong   val_flags1[10];         /* Validation User Flags from set #1*/
        !           502:        ulong   val_flags2[10];         /* Validation User Flags from set #2*/
        !           503:        ulong   val_flags3[10];         /* Validation User Flags from set #3*/
        !           504:        ulong   val_flags4[10];         /* Validation User Flags from set #4*/
        !           505:        ulong   val_exempt[10];         /* Validation User Exemption Flags */
        !           506:        ulong   val_rest[10];           /* Validation User Restriction Flags */
        !           507:        ulong   val_cdt[10];            /* Validation User Additional Credits */
        !           508:        ushort  val_expire[10];         /* Validation User Extend Expire #days */
        !           509:        uchar   level_expireto[100];
        !           510:        ushort  level_timepercall[100], /* Security level settings */
        !           511:                        level_timeperday[100],
        !           512:                        level_callsperday[100],
        !           513:                        level_linespermsg[100],
        !           514:                        level_postsperday[100],
        !           515:                        level_emailperday[100];
        !           516:        long    level_freecdtperday[100];
        !           517:        long    level_misc[100];
        !           518:        char    expired_level;  /* Expired user's ML */
        !           519:        ulong   expired_flags1; /* Flags from set #1 to remove when expired */
        !           520:        ulong   expired_flags2; /* Flags from set #2 to remove when expired */
        !           521:        ulong   expired_flags3; /* Flags from set #3 to remove when expired */
        !           522:        ulong   expired_flags4; /* Flags from set #4 to remove when expired */
        !           523:        ulong   expired_exempt; /* Exemptions to remove when expired */
        !           524:        ulong   expired_rest;   /* Restrictions to add when expired */
        !           525:        ushort  min_dspace;     /* Minimum amount of free space for uploads */
        !           526:        ushort  max_batup;              /* Max number of files in upload queue */
        !           527:        ushort  max_batdn;              /* Max number of files in download queue */
        !           528:        ushort  max_userxfer;   /* Max dest. users of user to user xfer */
        !           529:        ulong   max_minutes;    /* Maximum minutes a user can have */
        !           530:        ulong   max_qwkmsgs;    /* Maximum messages per QWK packet */
        !           531:        char    preqwk_arstr[LEN_ARSTR+1]; /* pre pack QWK */
        !           532:        uchar * preqwk_ar;
        !           533:        ushort  cdt_min_value;  /* Minutes per 100k credits */
        !           534:        ulong   cdt_per_dollar; /* Credits per dollar */
        !           535:        ushort  cdt_up_pct;     /* Pct of credits credited on uploads */
        !           536:        ushort  cdt_dn_pct;     /* Pct of credits credited per download */
        !           537:        char    node_dir[LEN_DIR+1];
        !           538:        char    ctrl_dir[LEN_DIR+1];
        !           539:        char    data_dir[LEN_DIR+1];
        !           540:        char    text_dir[LEN_DIR+1];
        !           541:        char    exec_dir[LEN_DIR+1];
        !           542:        char    temp_dir[LEN_DIR+1];
        !           543:        char    mods_dir[LEN_DIR+1];
        !           544:        char    logs_dir[LEN_DIR+1];
        !           545:        char    node_path[MAX_NODES][LEN_DIR+1]; /* paths to all node dirs */
        !           546:        ushort  sysop_dir;                      /* Destination for uploads to sysop */
        !           547:        ushort  user_dir;                       /* Directory for user to user xfers */
        !           548:        ushort  upload_dir;             /* Directory where all uploads go */
        !           549:        char ** altpath;                        /* Alternate paths for files */
        !           550:        ushort  altpaths;                       /* Total number of alternate paths */
        !           551:        ushort  leech_pct;                      /* Leech detection percentage */
        !           552:        ushort  leech_sec;                      /* Minimum seconds before possible leech */
        !           553:        ulong   netmail_cost;           /* Cost in credits to send netmail */
        !           554:        char    netmail_dir[LEN_DIR+1];    /* Directory to store netmail */
        !           555:        ushort  netmail_misc;           /* Miscellaneous bits regarding netmail */
        !           556:        ulong   inetmail_misc;          /* Miscellaneous bits regarding inetmail */
        !           557:        ulong   inetmail_cost;          /* Cost in credits to send Internet mail */
        !           558:        char    smtpmail_sem[LEN_DIR+1];        /* Inbound Internet Mail semaphore file */
        !           559:        char    inetmail_sem[LEN_DIR+1];        /* Outbound Internet Mail semaphore file */
        !           560:        char    echomail_dir[LEN_DIR+1];        /* Directory to store echomail in */
        !           561:        char    fidofile_dir[LEN_DIR+1];        /* Directory where inbound files go */
        !           562:        char    netmail_sem[LEN_DIR+1];         /* FidoNet NetMail semaphore */
        !           563:        char    echomail_sem[LEN_DIR+1];        /* FidoNet EchoMail semaphore  */
        !           564:        char    origline[51];           /* Default EchoMail origin line */
        !           565:        char    qnet_tagline[128];      /* Default QWK Network tagline */
        !           566:        long    uq;                                     /* User Questions */
        !           567:        ulong   mail_maxcrcs;                   /* Dupe checking in e-mail */
        !           568:        ushort  mail_maxage;                    /* Maximum age of e-mail */
        !           569:        faddr_t dflt_faddr;                     /* Default FidoNet address */
        !           570:        char    logon_mod[LEN_MODNAME+1];                       /* Logon module */
        !           571:        char    logoff_mod[LEN_MODNAME+1];                      /* Logoff module */
        !           572:        char    newuser_mod[LEN_MODNAME+1];             /* New User Module */
        !           573:        char    login_mod[LEN_MODNAME+1];                       /* Login module */
        !           574:        char    logout_mod[LEN_MODNAME+1];                      /* Logout module */
        !           575:        char    sync_mod[LEN_MODNAME+1];                        /* Synchronization module */
        !           576:        char    expire_mod[LEN_MODNAME+1];                      /* User expiration module */
        !           577:        char    scfg_cmd[LEN_CMD+1];    /* SCFG command line */
        !           578:        uchar   smb_retry_time;                 /* Seconds to retry on SMBs */
        !           579:        ushort  sec_warn;                               /* Seconds before inactivity warning */
        !           580:        ushort  sec_hangup;                     /* Seconds before inactivity hang-up */
        !           581: 
        !           582:        char*   color;                                  /* Different colors for the BBS */
        !           583:        ulong   total_colors;
        !           584:        ulong   ctrlkey_passthru;               /* Bits represent control keys NOT handled by inkey() */
        !           585: 
        !           586:        char    wfc_cmd[10][LEN_CMD+1];    /* 0-9 WFC DOS commands */
        !           587:        char    wfc_scmd[12][LEN_CMD+1];   /* F1-F12 WFC shrinking DOS commands */
        !           588: 
        !           589:        ushort  user_backup_level;
        !           590:        ushort  mail_backup_level;
        !           591: 
        !           592: } scfg_t;
        !           593: 
        !           594: #endif /* Don't add anything after this line */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.