/[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.2 - (hide annotations)
Sat Jun 10 16:21:03 2006 UTC (19 years, 9 months ago) by sysadm
Branch: MAIN
Changes since 1.1: +17 -0 lines
Content type: text/x-csrc
Antibot

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.1 { NULL, 0, conf_type_none, 0, NULL }
99     };
100    
101     static t_prefs prefs_conf;
102    
103     extern int d2cs_prefs_load(char const * filename)
104     {
105     memset(&prefs_conf,0,sizeof(prefs_conf));
106     if (conf_load_file(filename,prefs_conf_table,&prefs_conf,sizeof(prefs_conf))<0) {
107     return -1;
108     }
109     return 0;
110     }
111    
112     extern int prefs_reload(char const * filename)
113     {
114     d2cs_prefs_unload();
115     if (d2cs_prefs_load(filename)<0) return -1;
116     return 0;
117     }
118    
119     extern int d2cs_prefs_unload(void)
120     {
121     return conf_cleanup(prefs_conf_table, &prefs_conf, sizeof(prefs_conf));
122     }
123    
124     extern char const * prefs_get_servaddrs(void)
125     {
126     return prefs_conf.servaddrs;
127     }
128    
129     extern char const * prefs_get_charsave_dir(void)
130     {
131     return prefs_conf.charsavedir;
132     }
133    
134     extern char const * prefs_get_charinfo_dir(void)
135     {
136     return prefs_conf.charinfodir;
137     }
138    
139     extern char const * prefs_get_bak_charsave_dir(void)
140     {
141     return prefs_conf.bak_charsavedir;
142     }
143    
144     extern char const * prefs_get_bak_charinfo_dir(void)
145     {
146     return prefs_conf.bak_charinfodir;
147     }
148    
149     extern char const * prefs_get_charsave_newbie(void)
150     {
151     return prefs_conf.newbiefile;
152     }
153    
154     extern char const * prefs_get_motd(void)
155     {
156     return prefs_conf.motd;
157     }
158    
159     extern char const * prefs_get_d2gs_list(void)
160     {
161     return prefs_conf.gameservlist;
162     }
163    
164     extern unsigned int prefs_get_maxchar(void)
165     {
166     return (prefs_conf.maxchar>MAX_MAX_CHAR_PER_ACCT)?MAX_MAX_CHAR_PER_ACCT:prefs_conf.maxchar;
167     }
168    
169     extern unsigned int prefs_get_list_purgeinterval(void)
170     {
171     return prefs_conf.listpurgeinterval;
172     }
173    
174     extern unsigned int prefs_get_gamequeue_checkinterval(void)
175     {
176     return prefs_conf.gqcheckinterval;
177     }
178    
179     extern unsigned int prefs_get_maxgamelist(void)
180     {
181     return prefs_conf.maxgamelist;
182     }
183    
184     extern unsigned int prefs_allow_newchar(void)
185     {
186     return prefs_conf.allow_newchar;
187     }
188    
189     extern unsigned int prefs_get_idletime(void)
190     {
191     return prefs_conf.idletime;
192     }
193    
194     extern char const * d2cs_prefs_get_logfile(void)
195     {
196     return prefs_conf.logfile;
197     }
198    
199     extern unsigned int d2cs_prefs_get_shutdown_delay(void)
200     {
201     return prefs_conf.shutdown_delay;
202     }
203    
204     extern unsigned int d2cs_prefs_get_shutdown_decr(void)
205     {
206     return prefs_conf.shutdown_decr;
207     }
208    
209     extern char const * prefs_get_bnetdaddr(void)
210     {
211     return prefs_conf.bnetdaddr;
212     }
213    
214     extern char const * prefs_get_realmname(void)
215     {
216     return prefs_conf.realmname;
217     }
218    
219     extern unsigned int prefs_get_s2s_retryinterval(void)
220     {
221     return prefs_conf.s2s_retryinterval;
222     }
223    
224     extern unsigned int prefs_get_s2s_timeout(void)
225     {
226     return prefs_conf.s2s_timeout;
227     }
228    
229     extern unsigned int prefs_get_sq_timeout(void)
230     {
231     return prefs_conf.sq_timeout;
232     }
233    
234     extern unsigned int prefs_get_sq_checkinterval(void)
235     {
236     return prefs_conf.sq_checkinterval;
237     }
238    
239     extern unsigned int prefs_get_d2gs_checksum(void)
240     {
241     return prefs_conf.d2gs_checksum;
242     }
243    
244     extern unsigned int prefs_get_d2gs_version(void)
245     {
246     return prefs_conf.d2gs_version;
247     }
248    
249     extern unsigned int prefs_get_ladderlist_count(void)
250     {
251     return 0x10;
252     }
253    
254     extern unsigned int prefs_get_d2ladder_refresh_interval(void)
255     {
256     return prefs_conf.ladder_refresh_interval;
257     }
258    
259     extern unsigned int prefs_get_game_maxlifetime(void)
260     {
261     return prefs_conf.game_maxlifetime;
262     }
263    
264     extern char const * prefs_get_ladder_dir(void)
265     {
266     return prefs_conf.ladderdir;
267     }
268    
269     extern char const * d2cs_prefs_get_loglevels(void)
270     {
271     return prefs_conf.loglevels;
272     }
273    
274     extern unsigned int prefs_allow_gamelist_showall(void)
275     {
276     return prefs_conf.gamelist_showall;
277     }
278    
279     extern unsigned int prefs_allow_gamelimit(void)
280     {
281     return prefs_conf.allow_gamelimit;
282     }
283    
284     extern unsigned int prefs_check_multilogin(void)
285     {
286     return prefs_conf.check_multilogin;
287     }
288    
289     extern char const * prefs_get_d2gs_password(void)
290     {
291     return prefs_conf.d2gs_password;
292     }
293    
294     extern unsigned int prefs_get_s2s_idletime(void)
295     {
296     return prefs_conf.s2s_idletime;
297     }
298    
299     extern unsigned int prefs_get_s2s_keepalive_interval(void)
300     {
301     return prefs_conf.s2s_keepalive_interval;
302     }
303    
304     extern unsigned int prefs_get_timeout_checkinterval(void)
305     {
306     return prefs_conf.timeout_checkinterval;
307     }
308    
309     extern unsigned int prefs_get_max_game_idletime(void)
310     {
311     return prefs_conf.max_game_idletime;
312     }
313    
314     extern unsigned int prefs_get_lod_realm(void)
315     {
316     return prefs_conf.lod_realm;
317     }
318    
319     extern unsigned int prefs_get_allow_convert(void)
320     {
321     return prefs_conf.allow_convert;
322     }
323    
324     extern char const * d2cs_prefs_get_transfile(void)
325     {
326     return prefs_conf.transfile;
327     }
328    
329     extern char const * prefs_get_d2cs_account_allowed_symbols(void)
330     {
331     return prefs_conf.account_allowed_symbols;
332     }
333    
334     extern unsigned int prefs_get_ladder_start_time(void)
335     {
336     return prefs_conf.ladder_start_time;
337     }
338    
339     extern unsigned int prefs_get_d2gs_restart_delay(void)
340     {
341     return prefs_conf.d2gs_restart_delay;
342     }
343    
344     extern unsigned int prefs_get_char_expire_time(void)
345     {
346     return prefs_conf.char_expire_day * 3600 * 24;
347     }
348    
349     extern char const * prefs_get_d2gsconffile(void)
350     {
351     return prefs_conf.d2gsconffile;
352     }
353    
354     extern char const * prefs_get_charlist_sort(void)
355     {
356     return prefs_conf.charlist_sort;
357     }
358    
359     extern char const * prefs_get_charlist_sort_order(void)
360     {
361     return prefs_conf.charlist_sort_order;
362     }
363    
364     extern unsigned int prefs_get_max_connections(void)
365     {
366     return prefs_conf.max_connections;
367     }
368 sysadm 1.2
369     /* get values of instructions for antibot, by sowater ,20051001 */
370    
371     extern unsigned int prefs_enable_antibot(void)
372     {
373     return prefs_conf.enable_antibot;
374     }
375    
376     extern unsigned int prefs_antibot_when_password(void)
377     {
378     return prefs_conf.antibot_when_password;
379     }
380    
381    

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