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