Annotation of sbbs/sbbs3/scfgdefs.h, revision 1.1.1.2

1.1       root        1: /* scfgdefs.h */
                      2: 
                      3: /* Synchronet configuration structure (scfg_t) definition */
                      4: 
1.1.1.2 ! root        5: /* $Id: scfgdefs.h,v 1.26 2004/09/24 20:30:53 rswindell Exp $ */
1.1       root        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: 
1.1.1.2 ! root       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;
1.1       root      347: 
                    348: typedef struct 
                    349: {
1.1.1.2 ! root      350:        DWORD           size;                           /* sizeof(scfg_t) */
        !           351:        BOOL            prepped;                        /* TRUE if prep_cfg() has been used */
1.1       root      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 */
1.1.1.2 ! root      407:        hotkey_t        **hotkey;                       /* Global hot keys */
        !           408:        ushort          total_hotkeys;          /* Total number of global hot keys */
1.1       root      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 */
1.1.1.2 ! root      432:        char    sys_id[LEN_QWKID+1];/* System ID for QWK Packets */
1.1       root      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 */
1.1.1.2 ! root      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 */
1.1       root      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 */
1.1.1.2 ! root      474:        char    node_arstr[LEN_ARSTR+1]; /* Node minimum requirements */
1.1       root      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: 
1.1.1.2 ! root      481:        char    new_install;            /* This is a brand new installation */
1.1       root      482:        char    new_pass[41];           /* New User Password */
                    483:        char    new_magic[21];          /* New User Magic Word */
1.1.1.2 ! root      484:        char    new_sif[LEN_SIFNAME+1];                 /* New User SIF Questionaire */
        !           485:        char    new_sof[LEN_SIFNAME+1];                 /* New User SIF Questionaire output SIF */
1.1       root      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 */
1.1.1.2 ! root      495:        char    new_xedit[LEN_CODE+1];          /* New User Default Editor */
1.1       root      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 */
1.1.1.2 ! root      531:        char    preqwk_arstr[LEN_ARSTR+1]; /* pre pack QWK */
        !           532:        uchar * preqwk_ar;
1.1       root      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];
1.1.1.2 ! root      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 */
1.1       root      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 */
1.1.1.2 ! root      549:        char ** altpath;                        /* Alternate paths for files */
1.1       root      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 */
1.1.1.2 ! root      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  */
1.1       root      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 */
1.1.1.2 ! root      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 */
1.1       root      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: 
1.1.1.2 ! root      582:        char*   color;                                  /* Different colors for the BBS */
        !           583:        ulong   total_colors;
        !           584:        ulong   ctrlkey_passthru;               /* Bits represent control keys NOT handled by inkey() */
1.1       root      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: 
1.1.1.2 ! root      589:        ushort  user_backup_level;
        !           590:        ushort  mail_backup_level;
1.1       root      591: 
                    592: } scfg_t;
                    593: 
1.1.1.2 ! root      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.