Annotation of sbbs/src/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.35 2009/11/11 05:34:09 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:  *                                                                                                                                                     *
1.1.1.2 ! root       11:  * Copyright 2009 Rob Swindell - http://www.synchro.net/copyright.html         *
1.1       root       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:        uint16_t        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:        uint32_t        misc,                                           /* Miscellaneous flags */
        !            69:                                maxmsgs,                                        /* Max number of messages allowed */
        !            70:                                maxcrcs;                                        /* Max number of CRCs to keep */
        !            71:        faddr_t         faddr;                                          /* FidoNet address */
1.1       root       72: 
                     73: } sub_t;
                     74: 
1.1.1.2 ! root       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;
1.1       root       81: 
                     82: } grp_t;
                     83: 
1.1.1.2 ! root       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:        uint16_t        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:        uint32_t        misc;                                           /* Miscellaneous bits */
1.1       root      111: 
                    112: } dir_t;
                    113: 
1.1.1.2 ! root      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:        uint32_t        offline_dir;                            /* Offline file directory */
1.1       root      122: 
                    123: } lib_t;
                    124: 
1.1.1.2 ! root      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;
1.1       root      130: 
                    131: } txtsec_t;
                    132: 
1.1.1.2 ! root      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;
1.1       root      138: 
                    139: } xtrnsec_t;
                    140: 
1.1.1.2 ! root      141: typedef struct {                                                       /* Swappable executable */
        !           142:        char            cmd[LEN_CMD+1];                         /* Program name */
1.1       root      143: 
                    144: } swap_t;
                    145: 
1.1.1.2 ! root      146: typedef struct {                                                       /* OS/2 executable */
        !           147:        char            name[13];                                       /* Program name */
        !           148:        uint32_t        misc;                                           /* See OS2PGM_* */
1.1       root      149: 
                    150: } natvpgm_t;
                    151: 
1.1.1.2 ! root      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:        uint16_t        sec;                                            /* Section this program belongs to */
        !           167:        uint32_t        cost,                                           /* Cost to run in credits */
        !           168:                                misc;                                           /* Misc. bits - ANSI, DOS I/O etc. */
1.1       root      169: 
                    170: } xtrn_t;
                    171: 
1.1.1.2 ! root      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:        uint32_t        misc;                                           /* Intercept I/O */
1.1       root      177: 
                    178: } page_t;
                    179: 
                    180: 
1.1.1.2 ! root      181: typedef struct {                                                       /* Chat action set */
        !           182:        char            name[26];                                       /* Name of set */
1.1       root      183: 
                    184: } actset_t;
                    185: 
1.1.1.2 ! root      186: typedef struct {                                                       /* Chat action info */
        !           187:        char            cmd[LEN_CHATACTCMD+1],          /* Command word */
        !           188:                                out[LEN_CHATACTOUT+1];          /* Output */
        !           189:        uint16_t        actset;                                         /* Set this action belongs to */
1.1       root      190: 
                    191: } chatact_t;
                    192: 
1.1.1.2 ! root      193: typedef struct {                                                       /* Gurus */
        !           194:        char            code[LEN_CODE+1];
        !           195:        char            name[26],
        !           196:                                arstr[LEN_ARSTR+1];
        !           197:        uchar           *ar;
1.1       root      198: 
                    199: } guru_t;
                    200: 
1.1.1.2 ! root      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:        uint16_t        actset,                                         /* Set of actions used in this chan */
        !           207:                                guru;                                           /* Guru file number */
        !           208:        uint32_t        cost,                                           /* Cost to join */
        !           209:                                misc;                                           /* Misc. bits CHAN_* definitions */
1.1       root      210: 
                    211: } chan_t;
                    212: 
1.1.1.2 ! root      213: typedef struct {                                                       /* Modem Result codes info */
        !           214:        uint16_t        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 */
1.1       root      218: 
                    219: } mdm_result_t;
                    220: 
1.1.1.2 ! root      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:        uint32_t        misc;                                           /* Miscellaneous bits */
1.1       root      233: 
                    234: } prot_t;
                    235: 
1.1.1.2 ! root      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;
1.1       root      241: 
                    242: } fextr_t;
                    243: 
1.1.1.2 ! root      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;
1.1       root      249: 
                    250: } fcomp_t;
                    251: 
1.1.1.2 ! root      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;
1.1       root      257: 
                    258: } fview_t;
                    259: 
1.1.1.2 ! root      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;
1.1       root      266: 
                    267: } ftest_t;
                    268: 
1.1.1.2 ! root      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;
1.1       root      275: 
                    276: } dlevent_t;
                    277: 
1.1.1.2 ! root      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:        uint32_t        misc;                                           /* Misc. bits */
        !           286:        uchar           type;                                           /* Drop file type */
1.1       root      287: 
                    288: } xedit_t;
                    289: 
                    290: 
1.1.1.2 ! root      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:        uint16_t                node,                                   /* Node to execute event */
        !           297:                                        time,                                   /* Time to run event */
        !           298:                                        freq;                                   /* Frequency to run event */
        !           299:        uint32_t                misc,                                   /* Misc bits */
        !           300:                                        mdays;                                  /* Days of month (if non-zero) to run event */
        !           301:        uint16_t                months;                                 /* Months (if non-zero) to run event */
        !           302:        time32_t                last;                                   /* Last time event ran */
1.1       root      303: 
                    304: } event_t;
                    305: 
1.1.1.2 ! root      306: typedef struct {                                                       /* QWK Network Hub */
        !           307:        char            id[LEN_QWKID+1],                        /* System ID of Hub */
        !           308:                                *mode,                                          /* Mode for Ctrl-A codes for ea. sub */
        !           309:                                days,                                           /* Days to call-out on */
        !           310:                                call[LEN_CMD+1],                        /* Call-out command line to execute */
        !           311:                                pack[LEN_CMD+1],                        /* Packing command line */
        !           312:                                unpack[LEN_CMD+1];                      /* Unpacking command line */
        !           313:        uint16_t        time,                                           /* Time to call-out */
        !           314:                                node,                                           /* Node to do the call-out */
        !           315:                                freq,                                           /* Frequency of call-outs */
        !           316:                                subs,                                           /* Number Sub-boards carried */
        !           317:                                *conf;                                          /* Conference number of ea. */
        !           318:        ulong           *sub;                                           /* Number of local sub-board for ea. */
        !           319:        time32_t        last;                                           /* Last network attempt */
1.1       root      320: 
                    321: } qhub_t;
                    322: 
1.1.1.2 ! root      323: typedef struct {                                                       /* PCRelay/PostLink Hub */
        !           324:        char            days,                                           /* Days to call-out on */
        !           325:                                name[11],                                       /* Site Name of Hub */
        !           326:                                call[LEN_CMD+1];                        /* Call-out command line to execute */
        !           327:        uint16_t        time,                                           /* Time to call-out */
        !           328:                                node,                                           /* Node to do the call-out */
        !           329:                                freq;                                           /* Frequency of call-outs */
        !           330:        time32_t        last;                                           /* Last network attempt */
1.1       root      331: 
                    332: } phub_t;
                    333: 
                    334: 
1.1.1.2 ! root      335: typedef struct {                                                       /* Command Shells */
        !           336:        char            code[LEN_CODE+1];
        !           337:        char            name[41],                                       /* Name (description) */
        !           338:                                arstr[LEN_ARSTR+1];                     /* Access Requirement */
        !           339:        uchar           *ar;
        !           340:        uint32_t        misc;
1.1       root      341: 
                    342: } shell_t;
                    343: 
                    344: typedef struct {
1.1.1.2 ! root      345:        uchar           key;
        !           346:        char            cmd[LEN_CMD+1];
1.1       root      347: } hotkey_t;
                    348: 
                    349: typedef struct 
                    350: {
1.1.1.2 ! root      351:        DWORD                   size;                           /* sizeof(scfg_t) */
        !           352:        BOOL                    prepped;                        /* TRUE if prep_cfg() has been used */
1.1       root      353: 
1.1.1.2 ! root      354:        grp_t                   **grp;                          /* Each message group */
        !           355:        uint16_t                total_grps;             /* Total number of groups */
        !           356:        sub_t                   **sub;                          /* Each message sub */
        !           357:        uint16_t                total_subs;             /* Total number of subs */
        !           358:        lib_t                   **lib;                          /* Each library */
        !           359:        uint16_t                total_libs;             /* Total number of libraries */
        !           360:        dir_t                   **dir;                          /* Each message directory */
        !           361:        uint16_t                total_dirs;             /* Total number of directories */
        !           362:        txtsec_t                **txtsec;                       /* Each text section */
        !           363:        uint16_t                total_txtsecs;          /* Total number of text sections */
        !           364:        xtrnsec_t               **xtrnsec;                      /* Each external section */
        !           365:        uint16_t                total_xtrnsecs;         /* Total number of external sections */
        !           366:        xtrn_t                  **xtrn;                         /* Each external program */
        !           367:        uint16_t                total_xtrns;            /* Total number of externals */
        !           368:        mdm_result_t    *mdm_result;            /* Each Modem Result Code */
        !           369:        uint16_t                mdm_results;            /* Total number of Modem Results */
        !           370:        prot_t                  **prot;                         /* Each Transfer Protocol */
        !           371:        uint16_t                total_prots;            /* Total Transfer Protocols */
        !           372:        fextr_t                 **fextr;                        /* Each extractable file type */
        !           373:        uint16_t                total_fextrs;           /* Total extractable file types */
        !           374:        fcomp_t                 **fcomp;                        /* Each compressable file type */
        !           375:        uint16_t                total_fcomps;           /* Total */
        !           376:        fview_t                 **fview;                        /* Each veiwable file type */
        !           377:        uint16_t                total_fviews;           /* Total viewable file types */
        !           378:        ftest_t                 **ftest;                        /* Each testable file type */
        !           379:        uint16_t                total_ftests;           /* Total testable file types */
        !           380:        xedit_t                 **xedit;                        /* Each external editor */
        !           381:        uint16_t                total_xedits;           /* Total external editors */
        !           382:        qhub_t                  **qhub;                         /* QWK network hubs */
        !           383:        uint16_t                total_qhubs;            /* Total qwk network hubs */
        !           384:        phub_t                  **phub;                         /* PostLink/PCRelay network hubs */
        !           385:        uint16_t                total_phubs;            /* Total PostLink/PCRelay hubs */
        !           386:        chan_t                  **chan;                         /* Each chat channel */
        !           387:        uint16_t                total_chans;            /* Total number of chat channels */
        !           388:        chatact_t               **chatact;                      /* Chat action commands */
        !           389:        uint16_t                total_chatacts;     /* Total number of action commands */
        !           390:        actset_t                **actset;                       /* Name of action set */
        !           391:        uint16_t                total_actsets;          /* Total number of action sets */
        !           392:        page_t                  **page;                         /* External chat page */
        !           393:        uint16_t                total_pages;            /* Total number of external pages */
        !           394:        event_t                 **event;                        /* Timed events */
        !           395:        uint16_t                total_events;           /* Total number of timed events */
        !           396:        dlevent_t               **dlevent;                      /* Download events */
        !           397:        uint16_t                total_dlevents;         /* Total download events */
        !           398:        faddr_t                 *faddr;                         /* FidoNet addresses */
        !           399:        uint16_t                total_faddrs;           /* Total number of fido addresses */
        !           400:        swap_t                  **swap;                         /* Swapping externals */
        !           401:        uint16_t                total_swaps;            /* Total number of non-swap xtrns */
        !           402:        natvpgm_t               **natvpgm;                      /* Native (32-bit) Programs */
        !           403:        uint16_t                total_natvpgms;         /* Total number of native pgms */
        !           404:        guru_t                  **guru;                         /* Gurus */
        !           405:        uint16_t                total_gurus;            /* Total number of guru files */
        !           406:        shell_t                 **shell;                        /* Command shells */
        !           407:        uint16_t                total_shells;           /* Total number of command shells */
        !           408:        hotkey_t                **hotkey;                       /* Global hot keys */
        !           409:        uint16_t                total_hotkeys;          /* Total number of global hot keys */
        !           410: 
        !           411:                                                                                /* COM port registers: */
        !           412:        uint16_t                com_base,                       /* COM base address */
        !           413:                                        com_irq;                        /* irq line number         */
        !           414:        uint32_t                com_rate;                       /* DTE rate in bps         */
        !           415:        char                    com_port;                       /* Number of COM port  */
        !           416: 
        !           417:                                                                                /* Modem command strings */
        !           418:        char                    mdm_init[64],           /* Initialization */
        !           419:                                        mdm_spec[64],           /* Special Initialization */
        !           420:                                        mdm_term[64],           /* Terminal Initialization String */
        !           421:                                        mdm_dial[64],           /* Dial */
        !           422:                                        mdm_offh[64],           /* Off hook */
        !           423:                                        mdm_answ[64],           /* Answer */
        !           424:                                        mdm_hang[64];           /* Hang-up */
        !           425:        uint32_t                mdm_misc;                       /* Misc bits used for flags */
        !           426:        uint16_t                mdm_reinit;             /* Modem reinitialization minute count */
        !           427:        uint16_t                mdm_ansdelay;           /* Modem seconds to delay after answer */
        !           428:        uchar                   mdm_rings;                      /* Rings to wait till answer */
        !           429: 
        !           430:        int32_t                 sys_misc;                       /* System Misc Settings */
        !           431:        char                    sys_pass[41];           /* System Pass Word */
        !           432:        char                    sys_name[41];           /* System Name */
        !           433:        char                    sys_id[LEN_QWKID+1];/* System ID for QWK Packets */
        !           434:        char                    sys_psname[13];         /* PostLink and PCRelay Site Name */
        !           435:        uint32_t                sys_psnum;                      /* PostLink and PCRelay Site Number */
        !           436:        char                    sys_inetaddr[128];      /* System's internet address */
        !           437:        char                    sys_location[41];       /* System Location */
        !           438:        int16_t                 sys_timezone;           /* Time Zone of BBS */
        !           439:        char                    sys_daily[LEN_CMD+1];      /* Daily event */
        !           440:        char                    sys_logon[LEN_CMD+1];      /* Logon event */
        !           441:        char                    sys_logout[LEN_CMD+1];     /* Logoff event */
        !           442:        uint16_t                sys_pwdays;             /* Max days between password change */
        !           443:        uint16_t                sys_deldays;            /* Days to keep deleted users */
        !           444:        uint16_t                sys_autodel;            /* Autodeletion after x days inactive */
        !           445:        uint16_t                sys_nodes;                      /* Number of nodes on system */
        !           446:        char                    sys_op[41];         /* Name of system operator */
        !           447:        char                    sys_guru[41];       /* Name of system guru */
        !           448:        uchar                   sys_exp_warn;           /* Days left till expire to notify */
        !           449:        char                    sys_def_stat;           /* Default status line */
        !           450:        char                    sys_phonefmt[LEN_PHONE+1];      /* format of phone numbers */
        !           451:        uint16_t                sys_lastnode;           /* Last displayable node number */
        !           452:        uint16_t                sys_autonode;           /* First node number for autonode */
        !           453:        char                    sys_chat_arstr[LEN_ARSTR+1];    /* chat override */
        !           454:        uchar *                 sys_chat_ar;
        !           455: 
        !           456:        int32_t                 msg_misc;                       /* Global Message-Related Settings (upper 16-bits default to on) */
        !           457:        int32_t                 file_misc;                      /* File Misc Settings */
        !           458:        int32_t                 xtrn_misc;                      /* External Programs Misc Settings */
        !           459: 
        !           460:        char                    node_comspec[LEN_CMD+1];        /* DOS COMMAND.COM to use */
        !           461:        char                    node_editor[LEN_CMD+1]; /* Local text editor command line to use */
        !           462:        char                    node_viewer[LEN_CMD+1]; /* Local text viewer command line */
        !           463:        char                    node_daily[LEN_CMD+1];  /* Name of node's daily event */
        !           464:        uchar                   node_scrnlen;           /* Length of screen (rows) */
        !           465:        uchar                   node_scrnblank;         /* Min of inactivity for blank screen */
        !           466:        uint32_t                node_misc;                      /* Misc bits for node setup */
        !           467:        uint16_t                node_valuser;           /* User validation mail goes to */
        !           468:        uint16_t                node_ivt;                       /* Time-slice APIs */
        !           469:        uchar                   node_swap;                      /* Swap types allowed */
        !           470:        char                    node_swapdir[LEN_DIR+1];        /* Swap directory */
        !           471:        uint16_t                node_minbps;            /* Minimum connect rate of this node */
        !           472:        uint16_t                node_num;                       /* Local node number of this node */
        !           473:        char                    node_phone[13],         /* Phone number of this node */
1.1       root      474:                                        node_name[41];          /* Name of this node */
1.1.1.2 ! root      475:        char                    node_arstr[LEN_ARSTR+1]; /* Node minimum requirements */
        !           476:        uchar                   *node_ar;
        !           477:        uint32_t                node_cost;                      /* Node cost to call - in credits */
        !           478:        uchar                   node_dollars_per_call;  /* Billing Node Dollars Per Call */
        !           479:        uint16_t                node_sem_check;         /* Seconds between semaphore checks */
        !           480:        uint16_t                node_stat_check;        /* Seconds between statistic checks */
        !           481: 
        !           482:        char                    new_install;            /* This is a brand new installation */
        !           483:        char                    new_pass[41];           /* New User Password */
        !           484:        char                    new_magic[21];          /* New User Magic Word */
        !           485:        char                    new_sif[LEN_SIFNAME+1];                 /* New User SIF Questionaire */
        !           486:        char                    new_sof[LEN_SIFNAME+1];                 /* New User SIF Questionaire output SIF */
        !           487:        char                    new_level;                      /* New User Main Level */
        !           488:        uint32_t                new_flags1;             /* New User Main Flags from set #1*/
        !           489:        uint32_t                new_flags2;             /* New User Main Flags from set #2*/
        !           490:        uint32_t                new_flags3;             /* New User Main Flags from set #3*/
        !           491:        uint32_t                new_flags4;             /* New User Main Flags from set #4*/
        !           492:        uint32_t                new_exempt;                     /* New User Exemptions */
        !           493:        uint32_t                new_rest;                       /* New User Restrictions */
        !           494:        uint32_t                new_cdt;                        /* New User Credits */
        !           495:        uint32_t                new_min;                        /* New User Minutes */
        !           496:        char                    new_xedit[LEN_CODE+1];          /* New User Default Editor */
        !           497:        uint16_t                new_shell;                      /* New User Default Command Set */
        !           498:        uint32_t                new_misc;                       /* New User Miscellaneous Defaults */
        !           499:        uint16_t                new_expire;             /* Expiration days for new user */
        !           500:        uchar                   new_prot;                       /* New User Default Download Protocol */
        !           501:        char                    val_level[10];          /* Validation User Main Level */
        !           502:        uint32_t                val_flags1[10];         /* Validation User Flags from set #1*/
        !           503:        uint32_t                val_flags2[10];         /* Validation User Flags from set #2*/
        !           504:        uint32_t                val_flags3[10];         /* Validation User Flags from set #3*/
        !           505:        uint32_t                val_flags4[10];         /* Validation User Flags from set #4*/
        !           506:        uint32_t                val_exempt[10];         /* Validation User Exemption Flags */
        !           507:        uint32_t                val_rest[10];           /* Validation User Restriction Flags */
        !           508:        uint32_t                val_cdt[10];            /* Validation User Additional Credits */
        !           509:        uint16_t                val_expire[10];         /* Validation User Extend Expire #days */
        !           510:        uchar                   level_expireto[100];
        !           511:        uint16_t                level_timepercall[100], /* Security level settings */
        !           512:                                        level_timeperday[100],
        !           513:                                        level_callsperday[100],
        !           514:                                        level_linespermsg[100],
        !           515:                                        level_postsperday[100],
        !           516:                                        level_emailperday[100];
        !           517:        int32_t                 level_freecdtperday[100];
        !           518:        int32_t                 level_misc[100];
        !           519:        char                    expired_level;  /* Expired user's ML */
        !           520:        uint32_t                expired_flags1; /* Flags from set #1 to remove when expired */
        !           521:        uint32_t                expired_flags2; /* Flags from set #2 to remove when expired */
        !           522:        uint32_t                expired_flags3; /* Flags from set #3 to remove when expired */
        !           523:        uint32_t                expired_flags4; /* Flags from set #4 to remove when expired */
        !           524:        uint32_t                expired_exempt; /* Exemptions to remove when expired */
        !           525:        uint32_t                expired_rest;   /* Restrictions to add when expired */
        !           526:        uint16_t                min_dspace;     /* Minimum amount of free space for uploads (in kilobytes) */
        !           527:        uint16_t                max_batup;              /* Max number of files in upload queue */
        !           528:        uint16_t                max_batdn;              /* Max number of files in download queue */
        !           529:        uint16_t                max_userxfer;   /* Max dest. users of user to user xfer */
        !           530:        uint32_t                max_minutes;    /* Maximum minutes a user can have */
        !           531:        uint32_t                max_qwkmsgs;    /* Maximum messages per QWK packet */
        !           532:        uint16_t                max_qwkmsgage;  /* Maximum age (in days) of QWK messages to be imported */
        !           533:        char                    preqwk_arstr[LEN_ARSTR+1]; /* pre pack QWK */
        !           534:        uchar*                  preqwk_ar;
        !           535:        uint16_t                cdt_min_value;  /* Minutes per 100k credits */
        !           536:        uint32_t                cdt_per_dollar; /* Credits per dollar */
        !           537:        uint16_t                cdt_up_pct;     /* Pct of credits credited on uploads */
        !           538:        uint16_t                cdt_dn_pct;     /* Pct of credits credited per download */
        !           539:        char                    node_dir[LEN_DIR+1];
        !           540:        char                    ctrl_dir[LEN_DIR+1];
        !           541:        char                    data_dir[LEN_DIR+1];
        !           542:        char                    text_dir[LEN_DIR+1];
        !           543:        char                    exec_dir[LEN_DIR+1];
        !           544:        char                    temp_dir[LEN_DIR+1];
        !           545:        char                    mods_dir[LEN_DIR+1];
        !           546:        char                    logs_dir[LEN_DIR+1];
        !           547:        char                    node_path[MAX_NODES][LEN_DIR+1]; /* paths to all node dirs */
        !           548:        uint                    sysop_dir;                      /* Destination for uploads to sysop */
        !           549:        uint                    user_dir;                       /* Directory for user to user xfers */
        !           550:        uint                    upload_dir;             /* Directory where all uploads go */
        !           551:        char **                 altpath;                        /* Alternate paths for files */
        !           552:        uint16_t                altpaths;                       /* Total number of alternate paths */
        !           553:        uint16_t                leech_pct;                      /* Leech detection percentage */
        !           554:        uint16_t                leech_sec;                      /* Minimum seconds before possible leech */
        !           555:        uint32_t                netmail_cost;           /* Cost in credits to send netmail */
        !           556:        char                    netmail_dir[LEN_DIR+1];    /* Directory to store netmail */
        !           557:        uint16_t                netmail_misc;           /* Miscellaneous bits regarding netmail */
        !           558:        uint32_t                inetmail_misc;          /* Miscellaneous bits regarding inetmail */
        !           559:        uint32_t                inetmail_cost;          /* Cost in credits to send Internet mail */
        !           560:        char                    smtpmail_sem[LEN_DIR+1];        /* Inbound Internet Mail semaphore file */
        !           561:        char                    inetmail_sem[LEN_DIR+1];        /* Outbound Internet Mail semaphore file */
        !           562:        char                    echomail_dir[LEN_DIR+1];        /* Directory to store echomail in */
        !           563:        char                    fidofile_dir[LEN_DIR+1];        /* Directory where inbound files go */
        !           564:        char                    netmail_sem[LEN_DIR+1];         /* FidoNet NetMail semaphore */
        !           565:        char                    echomail_sem[LEN_DIR+1];        /* FidoNet EchoMail semaphore  */
        !           566:        char                    origline[51];           /* Default EchoMail origin line */
        !           567:        char                    qnet_tagline[128];      /* Default QWK Network tagline */
        !           568:        int32_t                 uq;                                     /* User Questions */
        !           569:        uint32_t                mail_maxcrcs;                   /* Dupe checking in e-mail */
        !           570:        uint16_t                mail_maxage;                    /* Maximum age of e-mail */
        !           571:        faddr_t                 dflt_faddr;                     /* Default FidoNet address */
        !           572:        char                    logon_mod[LEN_MODNAME+1];                       /* Logon module */
        !           573:        char                    logoff_mod[LEN_MODNAME+1];                      /* Logoff module */
        !           574:        char                    newuser_mod[LEN_MODNAME+1];             /* New User Module */
        !           575:        char                    login_mod[LEN_MODNAME+1];                       /* Login module */
        !           576:        char                    logout_mod[LEN_MODNAME+1];                      /* Logout module */
        !           577:        char                    sync_mod[LEN_MODNAME+1];                        /* Synchronization module */
        !           578:        char                    expire_mod[LEN_MODNAME+1];                      /* User expiration module */
        !           579:        char                    scfg_cmd[LEN_CMD+1];    /* SCFG command line */
        !           580:        uchar                   smb_retry_time;                 /* Seconds to retry on SMBs */
        !           581:        uint16_t                sec_warn;                               /* Seconds before inactivity warning */
        !           582:        uint16_t                sec_hangup;                     /* Seconds before inactivity hang-up */
        !           583: 
        !           584:        char*                   color;                                  /* Different colors for the BBS */
        !           585:        uint32_t                total_colors;
        !           586:        uint32_t                ctrlkey_passthru;               /* Bits represent control keys NOT handled by inkey() */
1.1       root      587: 
1.1.1.2 ! root      588:        char                    wfc_cmd[10][LEN_CMD+1];    /* 0-9 WFC DOS commands */
        !           589:        char                    wfc_scmd[12][LEN_CMD+1];   /* F1-F12 WFC shrinking DOS commands */
1.1       root      590: 
1.1.1.2 ! root      591:        uint16_t                user_backup_level;
        !           592:        uint16_t                mail_backup_level;
1.1       root      593: 
                    594: } scfg_t;
                    595: 
                    596: #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.