/[LeafOK_CVS]/pvpgn-1.7.4/src/d2cs/prefs.c
ViewVC logotype

Annotation of /pvpgn-1.7.4/src/d2cs/prefs.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations)
Tue Jun 13 16:07:52 2006 UTC (19 years, 9 months ago) by sysadm
Branch: MAIN
CVS Tags: pvpgn_1-7-4-0_MIL, HEAD
Changes since 1.2: +53 -0 lines
Content type: text/x-csrc
Antibot (for non-password protected game)

1 sysadm 1.1 /*
2     * Copyright (C) 2000,2001 Onlyer (onlyer@263.net)
3     *
4     * This program is free software; you can redistribute it and/or
5     * modify it under the terms of the GNU General Public License
6     * as published by the Free Software Foundation; either version 2
7     * of the License, or (at your option) any later version.
8     *
9     * This program is distributed in the hope that it will be useful,
10     * but WITHOUT ANY WARRANTY; without even the implied warranty of
11     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12     * GNU General Public License for more details.
13     *
14     * You should have received a copy of the GNU General Public License
15     * along with this program; if not, write to the Free Software
16     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17     */
18     #include "common/setup_before.h"
19     #include "setup.h"
20    
21     #ifdef HAVE_STDDEF_H
22     # include <stddef.h>
23     #else
24     # ifndef NULL
25     # define NULL ((void *)0)
26     # endif
27     #endif
28     #ifdef HAVE_STRING_H
29     # include <string.h>
30     #else
31     # ifdef HAVE_STRINGS_H
32     # include <strings.h>
33     # endif
34     # ifdef HAVE_MEMORY_H
35     # include <memory.h>
36     # endif
37     #endif
38     #include "compat/memset.h"
39    
40     #include "conf.h"
41     #include "prefs.h"
42     #include "common/eventlog.h"
43     #include "common/setup_after.h"
44    
45     static t_conf_table prefs_conf_table[]={
46     { "logfile", offsetof(t_prefs,logfile), conf_type_str, 0, DEFAULT_LOG_FILE },
47     { "loglevels", offsetof(t_prefs,loglevels), conf_type_str, 0, DEFAULT_LOG_LEVELS },
48     { "servaddrs", offsetof(t_prefs,servaddrs), conf_type_str, 0, D2CS_SERVER_ADDRS },
49     { "gameservlist", offsetof(t_prefs,gameservlist), conf_type_str, 0, D2GS_SERVER_LIST },
50     { "bnetdaddr", offsetof(t_prefs,bnetdaddr), conf_type_str, 0, BNETD_SERVER_LIST },
51     { "charsavedir", offsetof(t_prefs,charsavedir), conf_type_str, 0, D2CS_CHARSAVE_DIR },
52     { "charinfodir", offsetof(t_prefs,charinfodir), conf_type_str, 0, D2CS_CHARINFO_DIR },
53     { "bak_charsavedir", offsetof(t_prefs,bak_charsavedir), conf_type_str, 0, D2CS_BAK_CHARSAVE_DIR },
54     { "bak_charinfodir", offsetof(t_prefs,bak_charinfodir), conf_type_str, 0, D2CS_BAK_CHARINFO_DIR },
55     { "ladderdir", offsetof(t_prefs,ladderdir), conf_type_str, 0, D2CS_LADDER_DIR },
56     // FIXME: ladder_start_time should be conf_type_timestr
57     { "ladder_start_time", offsetof(t_prefs,ladder_start_time), conf_type_timestr,0, NULL },
58     { "ladder_refresh_interval",offsetof(t_prefs,ladder_refresh_interval),conf_type_int, 3600, NULL },
59     { "newbiefile", offsetof(t_prefs,newbiefile), conf_type_str, 0, D2CS_CHARSAVE_NEWBIE },
60     { "transfile", offsetof(t_prefs,transfile), conf_type_str, 0, D2CS_TRANS_FILE },
61     { "motd", offsetof(t_prefs,motd), conf_type_hexstr, 0, D2CS_MOTD },
62     { "realmname", offsetof(t_prefs,realmname), conf_type_str, 0, DEFAULT_REALM_NAME },
63     { "maxchar", offsetof(t_prefs,maxchar), conf_type_int, MAX_CHAR_PER_ACCT, NULL },
64     { "listpurgeinterval", offsetof(t_prefs,listpurgeinterval), conf_type_int, LIST_PURGE_INTERVAL, NULL },
65     { "gqcheckinterval", offsetof(t_prefs,gqcheckinterval), conf_type_int, GAMEQUEUE_CHECK_INTERVAL, NULL },
66     { "maxgamelist", offsetof(t_prefs,maxgamelist), conf_type_int, MAX_GAME_LIST, NULL },
67     { "max_game_idletime", offsetof(t_prefs,max_game_idletime), conf_type_int, MAX_GAME_IDLE_TIME, NULL },
68     { "gamelist_showall", offsetof(t_prefs,gamelist_showall), conf_type_bool, 0, NULL },
69     { "game_maxlifetime", offsetof(t_prefs,game_maxlifetime), conf_type_int, 0, NULL },
70     { "allow_gamelimit", offsetof(t_prefs,allow_gamelimit), conf_type_bool, 1, NULL },
71     { "allow_newchar", offsetof(t_prefs,allow_newchar), conf_type_bool, 1, NULL },
72     { "idletime", offsetof(t_prefs,idletime), conf_type_int, MAX_CLIENT_IDLETIME, NULL },
73     { "shutdown_delay", offsetof(t_prefs,shutdown_delay), conf_type_int, DEFAULT_SHUTDOWN_DELAY, NULL },
74     { "shutdown_decr", offsetof(t_prefs,shutdown_decr), conf_type_int, DEFAULT_SHUTDOWN_DECR, NULL },
75     { "s2s_retryinterval", offsetof(t_prefs,s2s_retryinterval), conf_type_int, DEFAULT_S2S_RETRYINTERVAL, NULL },
76     { "s2s_timeout", offsetof(t_prefs,s2s_timeout), conf_type_int, DEFAULT_S2S_TIMEOUT, NULL },
77     { "sq_checkinterval", offsetof(t_prefs,sq_checkinterval), conf_type_int, DEFAULT_SQ_CHECKINTERVAL, NULL },
78     { "sq_timeout", offsetof(t_prefs,sq_timeout), conf_type_int, DEFAULT_SQ_TIMEOUT, NULL },
79     { "d2gs_checksum", offsetof(t_prefs,d2gs_checksum), conf_type_int, 0, NULL },
80     { "d2gs_version", offsetof(t_prefs,d2gs_version), conf_type_int, 0, NULL },
81     { "d2gs_password", offsetof(t_prefs,d2gs_password), conf_type_str, 0, "" },
82     { "check_multilogin", offsetof(t_prefs,check_multilogin), conf_type_int, 1, NULL },
83     { "s2s_idletime", offsetof(t_prefs,s2s_idletime), conf_type_int, DEFAULT_S2S_IDLETIME, NULL },
84     { "s2s_keepalive_interval", offsetof(t_prefs,s2s_keepalive_interval), conf_type_int, DEFAULT_S2S_KEEPALIVE_INTERVAL,NULL },
85     { "timeout_checkinterval", offsetof(t_prefs,timeout_checkinterval), conf_type_int, DEFAULT_TIMEOUT_CHECKINTERVAL, NULL },
86     { "lod_realm", offsetof(t_prefs,lod_realm), conf_type_int, 2, NULL },
87     { "allow_convert", offsetof(t_prefs,allow_convert), conf_type_int, 0, NULL },
88     { "account_allowed_symbols",offsetof(t_prefs,account_allowed_symbols),conf_type_str, 0, DEFAULT_ACC_ALLOWED_SYMBOLS},
89     { "d2gs_restart_delay", offsetof(t_prefs,d2gs_restart_delay), conf_type_int, DEFAULT_D2GS_RESTART_DELAY, NULL },
90     { "char_expire_day", offsetof(t_prefs,char_expire_day), conf_type_int, 0, NULL },
91     { "d2gsconffile", offsetof(t_prefs,d2gsconffile), conf_type_str, 0, "" },
92     { "charlist_sort", offsetof(t_prefs,charlist_sort), conf_type_str, 0, "none" },
93     { "charlist_sort_order", offsetof(t_prefs,charlist_sort_order), conf_type_str, 0, "ASC" },
94     { "max_connections", offsetof(t_prefs,max_connections), conf_type_int, BNETD_MAX_SOCKETS, NULL },
95 sysadm 1.2 /* instructions for antibot, by sowater, 20051001 */
96     { "enable_antibot", offsetof(t_prefs,enable_antibot), conf_type_bool, 0, NULL},
97     { "antibot_when_password", offsetof(t_prefs,antibot_when_password), conf_type_bool, 0, NULL},
98 sysadm 1.3 { "create_game_interval", offsetof(t_prefs,create_game_interval), conf_type_int, 60, NULL},
99     { "frequently_create_limit", offsetof(t_prefs,frequently_create_limit), conf_type_int, 30, NULL},
100     { "ban_bot_time", offsetof(t_prefs,ban_bot_time), conf_type_int, 3600, NULL},
101     { "checknum_try_min", offsetof(t_prefs,checknum_try_min), conf_type_int, 1, NULL},
102     { "checknum_try_max", offsetof(t_prefs,checknum_try_max), conf_type_int, 2, NULL},
103     { "checknum_max_fail_times", offsetof(t_prefs,checknum_max_fail_times), conf_type_int, 3, NULL},
104     { "charstatus_max_chars", offsetof(t_prefs,charstatus_max_chars), conf_type_int, 500, NULL},
105     { "charstatus_max_life", offsetof(t_prefs,charstatus_max_life), conf_type_int, 3600, NULL},
106     { "dump_charstatus_list_interval", offsetof(t_prefs,dump_charstatus_list_interval), conf_type_int, 60, NULL},
107 sysadm 1.1 { NULL, 0, conf_type_none, 0, NULL }
108     };
109    
110     static t_prefs prefs_conf;
111    
112     extern int d2cs_prefs_load(char const * filename)
113     {
114     memset(&prefs_conf,0,sizeof(prefs_conf));
115     if (conf_load_file(filename,prefs_conf_table,&prefs_conf,sizeof(prefs_conf))<0) {
116     return -1;
117     }
118     return 0;
119     }
120    
121     extern int prefs_reload(char const * filename)
122     {
123     d2cs_prefs_unload();
124     if (d2cs_prefs_load(filename)<0) return -1;
125     return 0;
126     }
127    
128     extern int d2cs_prefs_unload(void)
129     {
130     return conf_cleanup(prefs_conf_table, &prefs_conf, sizeof(prefs_conf));
131     }
132    
133     extern char const * prefs_get_servaddrs(void)
134     {
135     return prefs_conf.servaddrs;
136     }
137    
138     extern char const * prefs_get_charsave_dir(void)
139     {
140     return prefs_conf.charsavedir;
141     }
142    
143     extern char const * prefs_get_charinfo_dir(void)
144     {
145     return prefs_conf.charinfodir;
146     }
147    
148     extern char const * prefs_get_bak_charsave_dir(void)
149     {
150     return prefs_conf.bak_charsavedir;
151     }
152    
153     extern char const * prefs_get_bak_charinfo_dir(void)
154     {
155     return prefs_conf.bak_charinfodir;
156     }
157    
158     extern char const * prefs_get_charsave_newbie(void)
159     {
160     return prefs_conf.newbiefile;
161     }
162    
163     extern char const * prefs_get_motd(void)
164     {
165     return prefs_conf.motd;
166     }
167    
168     extern char const * prefs_get_d2gs_list(void)
169     {
170     return prefs_conf.gameservlist;
171     }
172    
173     extern unsigned int prefs_get_maxchar(void)
174     {
175     return (prefs_conf.maxchar>MAX_MAX_CHAR_PER_ACCT)?MAX_MAX_CHAR_PER_ACCT:prefs_conf.maxchar;
176     }
177    
178     extern unsigned int prefs_get_list_purgeinterval(void)
179     {
180     return prefs_conf.listpurgeinterval;
181     }
182    
183     extern unsigned int prefs_get_gamequeue_checkinterval(void)
184     {
185     return prefs_conf.gqcheckinterval;
186     }
187    
188     extern unsigned int prefs_get_maxgamelist(void)
189     {
190     return prefs_conf.maxgamelist;
191     }
192    
193     extern unsigned int prefs_allow_newchar(void)
194     {
195     return prefs_conf.allow_newchar;
196     }
197    
198     extern unsigned int prefs_get_idletime(void)
199     {
200     return prefs_conf.idletime;
201     }
202    
203     extern char const * d2cs_prefs_get_logfile(void)
204     {
205     return prefs_conf.logfile;
206     }
207    
208     extern unsigned int d2cs_prefs_get_shutdown_delay(void)
209     {
210     return prefs_conf.shutdown_delay;
211     }
212    
213     extern unsigned int d2cs_prefs_get_shutdown_decr(void)
214     {
215     return prefs_conf.shutdown_decr;
216     }
217    
218     extern char const * prefs_get_bnetdaddr(void)
219     {
220     return prefs_conf.bnetdaddr;
221     }
222    
223     extern char const * prefs_get_realmname(void)
224     {
225     return prefs_conf.realmname;
226     }
227    
228     extern unsigned int prefs_get_s2s_retryinterval(void)
229     {
230     return prefs_conf.s2s_retryinterval;
231     }
232    
233     extern unsigned int prefs_get_s2s_timeout(void)
234     {
235     return prefs_conf.s2s_timeout;
236     }
237    
238     extern unsigned int prefs_get_sq_timeout(void)
239     {
240     return prefs_conf.sq_timeout;
241     }
242    
243     extern unsigned int prefs_get_sq_checkinterval(void)
244     {
245     return prefs_conf.sq_checkinterval;
246     }
247    
248     extern unsigned int prefs_get_d2gs_checksum(void)
249     {
250     return prefs_conf.d2gs_checksum;
251     }
252    
253     extern unsigned int prefs_get_d2gs_version(void)
254     {
255     return prefs_conf.d2gs_version;
256     }
257    
258     extern unsigned int prefs_get_ladderlist_count(void)
259     {
260     return 0x10;
261     }
262    
263     extern unsigned int prefs_get_d2ladder_refresh_interval(void)
264     {
265     return prefs_conf.ladder_refresh_interval;
266     }
267    
268     extern unsigned int prefs_get_game_maxlifetime(void)
269     {
270     return prefs_conf.game_maxlifetime;
271     }
272    
273     extern char const * prefs_get_ladder_dir(void)
274     {
275     return prefs_conf.ladderdir;
276     }
277    
278     extern char const * d2cs_prefs_get_loglevels(void)
279     {
280     return prefs_conf.loglevels;
281     }
282    
283     extern unsigned int prefs_allow_gamelist_showall(void)
284     {
285     return prefs_conf.gamelist_showall;
286     }
287    
288     extern unsigned int prefs_allow_gamelimit(void)
289     {
290     return prefs_conf.allow_gamelimit;
291     }
292    
293     extern unsigned int prefs_check_multilogin(void)
294     {
295     return prefs_conf.check_multilogin;
296     }
297    
298     extern char const * prefs_get_d2gs_password(void)
299     {
300     return prefs_conf.d2gs_password;
301     }
302    
303     extern unsigned int prefs_get_s2s_idletime(void)
304     {
305     return prefs_conf.s2s_idletime;
306     }
307    
308     extern unsigned int prefs_get_s2s_keepalive_interval(void)
309     {
310     return prefs_conf.s2s_keepalive_interval;
311     }
312    
313     extern unsigned int prefs_get_timeout_checkinterval(void)
314     {
315     return prefs_conf.timeout_checkinterval;
316     }
317    
318     extern unsigned int prefs_get_max_game_idletime(void)
319     {
320     return prefs_conf.max_game_idletime;
321     }
322    
323     extern unsigned int prefs_get_lod_realm(void)
324     {
325     return prefs_conf.lod_realm;
326     }
327    
328     extern unsigned int prefs_get_allow_convert(void)
329     {
330     return prefs_conf.allow_convert;
331     }
332    
333     extern char const * d2cs_prefs_get_transfile(void)
334     {
335     return prefs_conf.transfile;
336     }
337    
338     extern char const * prefs_get_d2cs_account_allowed_symbols(void)
339     {
340     return prefs_conf.account_allowed_symbols;
341     }
342    
343     extern unsigned int prefs_get_ladder_start_time(void)
344     {
345     return prefs_conf.ladder_start_time;
346     }
347    
348     extern unsigned int prefs_get_d2gs_restart_delay(void)
349     {
350     return prefs_conf.d2gs_restart_delay;
351     }
352    
353     extern unsigned int prefs_get_char_expire_time(void)
354     {
355     return prefs_conf.char_expire_day * 3600 * 24;
356     }
357    
358     extern char const * prefs_get_d2gsconffile(void)
359     {
360     return prefs_conf.d2gsconffile;
361     }
362    
363     extern char const * prefs_get_charlist_sort(void)
364     {
365     return prefs_conf.charlist_sort;
366     }
367    
368     extern char const * prefs_get_charlist_sort_order(void)
369     {
370     return prefs_conf.charlist_sort_order;
371     }
372    
373     extern unsigned int prefs_get_max_connections(void)
374     {
375     return prefs_conf.max_connections;
376     }
377 sysadm 1.2
378     /* get values of instructions for antibot, by sowater ,20051001 */
379    
380     extern unsigned int prefs_enable_antibot(void)
381     {
382     return prefs_conf.enable_antibot;
383     }
384    
385     extern unsigned int prefs_antibot_when_password(void)
386     {
387     return prefs_conf.antibot_when_password;
388     }
389    
390 sysadm 1.3 /* by leaflet */
391     extern unsigned int prefs_create_game_interval(void)
392     {
393     return prefs_conf.create_game_interval;
394     }
395 sysadm 1.2
396 sysadm 1.3 extern unsigned int prefs_frequently_create_limit(void)
397     {
398     return prefs_conf.frequently_create_limit;
399     }
400    
401     extern unsigned int prefs_ban_bot_time(void)
402     {
403     return prefs_conf.ban_bot_time;
404     }
405    
406     extern unsigned int prefs_checknum_try_min(void)
407     {
408     return prefs_conf.checknum_try_min;
409     }
410    
411     extern unsigned int prefs_checknum_try_max(void)
412     {
413     return prefs_conf.checknum_try_max;
414     }
415    
416     extern unsigned int prefs_checknum_max_fail_times(void)
417     {
418     return prefs_conf.checknum_max_fail_times;
419     }
420    
421     extern unsigned int prefs_charstatus_max_chars(void)
422     {
423     return prefs_conf.charstatus_max_chars;
424     }
425    
426     extern unsigned int prefs_charstatus_max_life(void)
427     {
428     return prefs_conf.charstatus_max_life;
429     }
430    
431     extern unsigned int prefs_dump_charstatus_list_interval(void)
432     {
433     return prefs_conf.dump_charstatus_list_interval;
434     }

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1