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