Annotation of sbbs/src/sbbs3/scfgdefs.h, revision 1.1.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.