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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (vendor branch)
Tue Jun 6 03:41:38 2006 UTC (19 years, 9 months ago) by sysadm
Branch: GNU
CVS Tags: arelease
Changes since 1.1: +0 -0 lines
Content type: text/x-csrc
Error occurred while calculating annotation data.
no message

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