/[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.1 - (hide annotations)
Tue Jun 6 03:41:38 2006 UTC (19 years, 9 months ago) by sysadm
Branch: MAIN
Branch point for: GNU
Content type: text/x-csrc
Initial revision

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

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