|
|
1.1 root 1: /* scfgdefs.h */
2:
3: /* Synchronet configuration structure (scfg_t) definition */
4:
5: /* $Id: scfgdefs.h,v 1.1.1.1 2000/10/10 11:25:16 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: #include "startup.h"
44:
45: typedef struct
46: {
47:
48: grp_t **grp; /* Each message group */
49: ushort total_grps; /* Total number of groups */
50: sub_t **sub; /* Each message sub */
51: ushort total_subs; /* Total number of subs */
52: lib_t **lib; /* Each library */
53: ushort total_libs; /* Total number of libraries */
54: dir_t **dir; /* Each message directory */
55: ushort total_dirs; /* Total number of directories */
56: txtsec_t **txtsec; /* Each text section */
57: ushort total_txtsecs; /* Total number of text sections */
58: xtrnsec_t **xtrnsec; /* Each external section */
59: ushort total_xtrnsecs; /* Total number of external sections */
60: xtrn_t **xtrn; /* Each external program */
61: ushort total_xtrns; /* Total number of externals */
62: mdm_result_t *mdm_result; /* Each Modem Result Code */
63: ushort mdm_results; /* Total number of Modem Results */
64: prot_t **prot; /* Each Transfer Protocol */
65: ushort total_prots; /* Total Transfer Protocols */
66: fextr_t **fextr; /* Each extractable file type */
67: ushort total_fextrs; /* Total extractable file types */
68: fcomp_t **fcomp; /* Each compressable file type */
69: ushort total_fcomps; /* Total */
70: fview_t **fview; /* Each veiwable file type */
71: ushort total_fviews; /* Total viewable file types */
72: ftest_t **ftest; /* Each testable file type */
73: ushort total_ftests; /* Total testable file types */
74: xedit_t **xedit; /* Each external editor */
75: ushort total_xedits; /* Total external editors */
76: qhub_t **qhub; /* QWK network hubs */
77: ushort total_qhubs; /* Total qwk network hubs */
78: phub_t **phub; /* PostLink/PCRelay network hubs */
79: ushort total_phubs; /* Total PostLink/PCRelay hubs */
80: chan_t **chan; /* Each chat channel */
81: ushort total_chans; /* Total number of chat channels */
82: chatact_t **chatact; /* Chat action commands */
83: ushort total_chatacts; /* Total number of action commands */
84: actset_t **actset; /* Name of action set */
85: ushort total_actsets; /* Total number of action sets */
86: page_t **page; /* External chat page */
87: ushort total_pages; /* Total number of external pages */
88: event_t **event; /* Timed events */
89: ushort total_events; /* Total number of timed events */
90: dlevent_t **dlevent; /* Download events */
91: ushort total_dlevents; /* Total download events */
92: faddr_t *faddr; /* FidoNet addresses */
93: ushort total_faddrs; /* Total number of fido addresses */
94: swap_t **swap; /* Swapping externals */
95: ushort total_swaps; /* Total number of non-swap xtrns */
96: natvpgm_t **natvpgm; /* Native (32-bit) Programs */
97: ushort total_natvpgms; /* Total number of native pgms */
98: guru_t **guru; /* Gurus */
99: ushort total_gurus; /* Total number of guru files */
100: shell_t **shell; /* Command shells */
101: ushort total_shells; /* Total number of command shells */
102:
103: /* COM port registers: */
104: ushort com_base, /* COM base address */
105: com_irq; /* irq line number */
106: ulong com_rate; /* DTE rate in bps */
107: char com_port; /* Number of COM port */
108:
109: /* Modem command strings */
110: char mdm_init[64], /* Initialization */
111: mdm_spec[64], /* Special Initialization */
112: mdm_term[64], /* Terminal Initialization String */
113: mdm_dial[64], /* Dial */
114: mdm_offh[64], /* Off hook */
115: mdm_answ[64], /* Answer */
116: mdm_hang[64]; /* Hang-up */
117: ulong mdm_misc; /* Misc bits used for flags */
118: ushort mdm_reinit; /* Modem reinitialization minute count */
119: ushort mdm_ansdelay; /* Modem seconds to delay after answer */
120: uchar mdm_rings; /* Rings to wait till answer */
121:
122: long sys_misc; /* System Misc Settings */
123: char sys_pass[41]; /* System Pass Word */
124: char sys_name[41]; /* System Name */
125: char sys_id[9]; /* System ID for QWK Packets */
126: char sys_psname[13]; /* PostLink and PCRelay Site Name */
127: ulong sys_psnum; /* PostLink and PCRelay Site Number */
128: char sys_inetaddr[128]; /* System's internet address */
129: char sys_location[41]; /* System Location */
130: short sys_timezone; /* Time Zone of BBS */
131: char sys_daily[LEN_CMD+1]; /* Daily event */
132: char sys_logon[LEN_CMD+1]; /* Logon event */
133: char sys_logout[LEN_CMD+1]; /* Logoff event */
134: ushort sys_pwdays; /* Max days between password change */
135: ushort sys_deldays; /* Days to keep deleted users */
136: ushort sys_autodel; /* Autodeletion after x days inactive */
137: ushort sys_nodes; /* Number of nodes on system */
138: char sys_op[41]; /* Name of system operator */
139: char sys_guru[41]; /* Name of system guru */
140: uchar sys_exp_warn; /* Days left till expire to notify */
141: char sys_def_stat; /* Default status line */
142: char sys_phonefmt[LEN_PHONE+1]; /* format of phone numbers */
143: ushort sys_lastnode; /* Last displayable node number */
144: ushort sys_autonode; /* First node number for autonode */
145: #ifdef SCFG
146: char sys_chat_ar[LEN_ARSTR+1]; /* chat override */
147: #else
148: uchar *sys_chat_ar;
149: #endif
150:
151: char node_comspec[LEN_CMD+1]; /* DOS COMMAND.COM to use */
152: char node_editor[LEN_CMD+1]; /* Local text editor command line to use */
153: char node_viewer[LEN_CMD+1]; /* Local text viewer command line */
154: char node_daily[LEN_CMD+1]; /* Name of node's daily event */
155: uchar node_scrnlen; /* Length of screen (rows) */
156: uchar node_scrnblank; /* Min of inactivity for blank screen */
157: ulong node_misc; /* Misc bits for node setup */
158: ushort node_valuser; /* User validation mail goes to */
159: ushort node_ivt; /* Time-slice APIs */
160: uchar node_swap; /* Swap types allowed */
161: char node_swapdir[LEN_DIR+1]; /* Swap directory */
162: ushort node_minbps; /* Minimum connect rate of this node */
163: ushort node_num; /* Local node number of this node */
164: char node_phone[13], /* Phone number of this node */
165: node_name[41]; /* Name of this node */
166: #ifdef SCFG
167: char node_ar[LEN_ARSTR+1]; /* Node minimum requirements */
168: #else
169: uchar *node_ar;
170: #endif
171: ulong node_cost; /* Node cost to call - in credits */
172: uchar node_dollars_per_call; /* Billing Node Dollars Per Call */
173: ushort node_sem_check; /* Seconds between semaphore checks */
174: ushort node_stat_check; /* Seconds between statistic checks */
175:
176: char new_pass[41]; /* New User Password */
177: char new_magic[21]; /* New User Magic Word */
178: char new_sif[9]; /* New User SIF Questionaire */
179: char new_sof[9]; /* New User SIF Questionaire output SIF */
180: char new_level; /* New User Main Level */
181: ulong new_flags1; /* New User Main Flags from set #1*/
182: ulong new_flags2; /* New User Main Flags from set #2*/
183: ulong new_flags3; /* New User Main Flags from set #3*/
184: ulong new_flags4; /* New User Main Flags from set #4*/
185: ulong new_exempt; /* New User Exemptions */
186: ulong new_rest; /* New User Restrictions */
187: ulong new_cdt; /* New User Credits */
188: ulong new_min; /* New User Minutes */
189: char new_xedit[9]; /* New User Default Editor */
190: ushort new_shell; /* New User Default Command Set */
191: ulong new_misc; /* New User Miscellaneous Defaults */
192: ushort new_expire; /* Expiration days for new user */
193: uchar new_prot; /* New User Default Download Protocol */
194: char val_level[10]; /* Validation User Main Level */
195: ulong val_flags1[10]; /* Validation User Flags from set #1*/
196: ulong val_flags2[10]; /* Validation User Flags from set #2*/
197: ulong val_flags3[10]; /* Validation User Flags from set #3*/
198: ulong val_flags4[10]; /* Validation User Flags from set #4*/
199: ulong val_exempt[10]; /* Validation User Exemption Flags */
200: ulong val_rest[10]; /* Validation User Restriction Flags */
201: ulong val_cdt[10]; /* Validation User Additional Credits */
202: ushort val_expire[10]; /* Validation User Extend Expire #days */
203: uchar level_expireto[100];
204: ushort level_timepercall[100], /* Security level settings */
205: level_timeperday[100],
206: level_callsperday[100],
207: level_linespermsg[100],
208: level_postsperday[100],
209: level_emailperday[100];
210: long level_freecdtperday[100];
211: long level_misc[100];
212: char expired_level; /* Expired user's ML */
213: ulong expired_flags1; /* Flags from set #1 to remove when expired */
214: ulong expired_flags2; /* Flags from set #2 to remove when expired */
215: ulong expired_flags3; /* Flags from set #3 to remove when expired */
216: ulong expired_flags4; /* Flags from set #4 to remove when expired */
217: ulong expired_exempt; /* Exemptions to remove when expired */
218: ulong expired_rest; /* Restrictions to add when expired */
219: ushort min_dspace; /* Minimum amount of free space for uploads */
220: ushort max_batup; /* Max number of files in upload queue */
221: ushort max_batdn; /* Max number of files in download queue */
222: ushort max_userxfer; /* Max dest. users of user to user xfer */
223: ulong max_minutes; /* Maximum minutes a user can have */
224: ulong max_qwkmsgs; /* Maximum messages per QWK packet */
225: #ifdef SCFG
226: char preqwk_ar[LEN_ARSTR+1]; /* pre pack QWK */
227: #else
228: uchar *preqwk_ar;
229: #endif
230: ushort cdt_min_value; /* Minutes per 100k credits */
231: ulong cdt_per_dollar; /* Credits per dollar */
232: ushort cdt_up_pct; /* Pct of credits credited on uploads */
233: ushort cdt_dn_pct; /* Pct of credits credited per download */
234: char node_dir[LEN_DIR+1];
235: char ctrl_dir[LEN_DIR+1];
236: char data_dir[LEN_DIR+1];
237: char text_dir[LEN_DIR+1];
238: char exec_dir[LEN_DIR+1];
239: char temp_dir[LEN_DIR+1];
240: char **node_path; /* paths to all node dirs */
241: ushort sysop_dir; /* Destination for uploads to sysop */
242: ushort user_dir; /* Directory for user to user xfers */
243: ushort upload_dir; /* Directory where all uploads go */
244: char **altpath; /* Alternate paths for files */
245: ushort altpaths; /* Total number of alternate paths */
246: ushort leech_pct; /* Leech detection percentage */
247: ushort leech_sec; /* Minimum seconds before possible leech */
248: ulong netmail_cost; /* Cost in credits to send netmail */
249: char netmail_dir[LEN_DIR+1]; /* Directory to store netmail */
250: ushort netmail_misc; /* Miscellaneous bits regarding netmail */
251: ulong inetmail_misc; /* Miscellaneous bits regarding inetmail */
252: ulong inetmail_cost; /* Cost in credits to send Internet mail */
253: char inetmail_sem[LEN_DIR+1]; /* Internet Mail semaphore file */
254: char echomail_dir[LEN_DIR+1]; /* Directory to store echomail in */
255: char fidofile_dir[LEN_DIR+1]; /* Directory where inbound files go */
256: char netmail_sem[LEN_DIR+1]; /* FidoNet NetMail semaphore */
257: char echomail_sem[LEN_DIR+1]; /* FidoNet EchoMail semaphore */
258: char origline[51]; /* Default EchoMail origin line */
259: char qnet_tagline[128]; /* Default QWK Network tagline */
260: long uq; /* User Questions */
261: ulong mail_maxcrcs; /* Dupe checking in e-mail */
262: ushort mail_maxage; /* Maximum age of e-mail */
263: faddr_t dflt_faddr; /* Default FidoNet address */
264: char logon_mod[9]; /* Logon module */
265: char logoff_mod[9]; /* Logoff module */
266: char newuser_mod[9]; /* New User Module */
267: char login_mod[9]; /* Login module */
268: char logout_mod[9]; /* Logout module */
269: char sync_mod[9]; /* Synchronization module */
270: char expire_mod[9]; /* User expiration module */
271: char scfg_cmd[LEN_CMD+1]; /* SCFG command line */
272: uchar smb_retry_time; /* Seconds to retry on SMBs */
273: ushort sec_warn; /* Seconds before inactivity warning */
274: ushort sec_hangup; /* Seconds before inactivity hang-up */
275:
276: char color[TOTAL_COLORS]; /* Different colors for the BBS */
277:
278: #ifndef SCFG
279:
280: char data_dir_subs[128]; /* DATA\SUBS directory */
281: char data_dir_dirs[128]; /* DATA\DIRS directory */
282:
283: #endif
284:
285: #ifdef SCFG
286:
287: char wfc_cmd[10][LEN_CMD+1]; /* 0-9 WFC DOS commands */
288: char wfc_scmd[12][LEN_CMD+1]; /* F1-F12 WFC shrinking DOS commands */
289:
290: #else
291:
292: char *wfc_cmd[10]; /* 0-9 WFC DOS commands */
293: char *wfc_scmd[12]; /* F1-F12 WFC shrinking DOS commands */
294:
295: #endif
296:
297: bbs_startup_t* startup;
298:
299: } scfg_t;
300:
301: #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.