|
|
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.