|
|
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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.