Updated init script.
[dtbartle/bnbt.git] / config.cpp
1 /***\r
2 *\r
3 * BNBT Beta 8.0 - A C++ BitTorrent Tracker\r
4 * Copyright (C) 2003-2004 Trevor Hogan\r
5 *\r
6 * CBTT variations (C) 2003-2005 Harold Feit\r
7 *\r
8 * This library is free software; you can redistribute it and/or\r
9 * modify it under the terms of the GNU Lesser General Public\r
10 * License as published by the Free Software Foundation; either\r
11 * version 2.1 of the License, or (at your option) any later version.\r
12 *\r
13 * This library is distributed in the hope that it will be useful,\r
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
16 * Lesser General Public License for more details.\r
17 *\r
18 * You should have received a copy of the GNU Lesser General Public\r
19 * License along with this library; if not, write to the Free Software\r
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
21 *\r
22 ***/\r
23 \r
24 #include <fstream>\r
25 \r
26 #include "bnbt.h"\r
27 #include "atom.h"\r
28 #include "config.h"\r
29 #include "tracker.h"\r
30 #include "util.h"\r
31 \r
32 map<string, string> gmapCFG;\r
33 \r
34 void CFG_Open( const char *szFile )\r
35 {\r
36         gmapCFG.clear( );\r
37 \r
38         ifstream in;\r
39 \r
40         in.open( szFile );\r
41 \r
42         if( in.fail( ) )\r
43         {\r
44                 UTIL_LogPrint( "config warning - unable to open %s for reading\n", szFile );\r
45 \r
46                 return;\r
47         }\r
48 \r
49         while( !in.eof( ) )\r
50         {\r
51                 char pBuf[1024];\r
52 \r
53                 in.getline( pBuf, 1023 );\r
54 \r
55                 string strTemp = pBuf;\r
56 \r
57                 // ignore blank lines and comments\r
58 \r
59                 if( strTemp.empty( ) || strTemp[0] == '#' )\r
60                         continue;\r
61 \r
62                 string :: size_type iSplit = strTemp.find( "=" );\r
63 \r
64                 if( iSplit == string :: npos )\r
65                         continue;\r
66 \r
67                 string :: size_type iKeyStart = strTemp.find_first_not_of( " " );\r
68                 string :: size_type iKeyEnd = strTemp.find( " ", iKeyStart );\r
69                 string :: size_type iValueStart = strTemp.find_first_not_of( " ", iSplit + 1 );\r
70                 string :: size_type iValueEnd = strTemp.size( );\r
71 \r
72                 if( iValueStart != string :: npos )\r
73                         gmapCFG[strTemp.substr( iKeyStart, iKeyEnd - iKeyStart )] = strTemp.substr( iValueStart, iValueEnd - iValueStart );\r
74         }\r
75 \r
76         in.close( );\r
77 }\r
78 \r
79 void CFG_SetInt( string strKey, int x )\r
80 {\r
81         gmapCFG[strKey] = CAtomInt( x ).toString( );\r
82 }\r
83 \r
84 void CFG_SetString( string strKey, string x )\r
85 {\r
86         gmapCFG[strKey] = x;\r
87 }\r
88 \r
89 int CFG_GetInt( string strKey, int x )\r
90 {\r
91         if( gmapCFG.find( strKey ) == gmapCFG.end( ) )\r
92                 return x;\r
93         else\r
94                 return atoi( gmapCFG[strKey].c_str( ) );\r
95 }\r
96 \r
97 string CFG_GetString( string strKey, string x )\r
98 {\r
99         if( gmapCFG.find( strKey ) == gmapCFG.end( ) )\r
100                 return x;\r
101         else\r
102                 return gmapCFG[strKey];\r
103 }\r
104 \r
105 void CFG_Delete( string strKey )\r
106 {\r
107         gmapCFG.erase( strKey );\r
108 }\r
109 \r
110 void CFG_Close( const char *szFile )\r
111 {\r
112         ofstream out;\r
113 \r
114         out.open( szFile );\r
115 \r
116         if( out.fail( ) )\r
117         {\r
118                 UTIL_LogPrint( "config warning - unable to open %s for writing\n", szFile );\r
119 \r
120                 return;\r
121         }\r
122 \r
123         for( map<string, string> :: iterator i = gmapCFG.begin( ); i != gmapCFG.end( ); i++ )\r
124                 out << (*i).first.c_str( ) << " = " << (*i).second.c_str( ) << endl;\r
125 \r
126         out.close( );\r
127 }\r
128 \r
129 void CFG_SetDefaults( )\r
130 {\r
131         if( gbDebug )\r
132                 UTIL_LogPrint( "config - setting defaults\n" );\r
133 \r
134         // bnbt.cpp\r
135 \r
136         if( CFG_GetInt( "bnbt_debug", -1 ) < 0 )\r
137                 CFG_SetInt( "bnbt_debug", 0 );\r
138 \r
139         if( CFG_GetInt( "bnbt_max_conns", 0 ) < 1 )\r
140                 CFG_SetInt( "bnbt_max_conns", 64 );\r
141 \r
142         if( CFG_GetString( "bnbt_style_sheet", string( ) ).empty( ) )\r
143                 CFG_SetString( "bnbt_style_sheet", string( ) );\r
144 \r
145         if( CFG_GetString( "bnbt_charset", string( ) ).empty( ) )\r
146                 CFG_SetString( "bnbt_charset", "iso-8859-1" );\r
147 \r
148         if( CFG_GetString( "bnbt_realm", string( ) ).empty( ) )\r
149                 CFG_SetString( "bnbt_realm", "BNBT" );\r
150 \r
151         if( CFG_GetString( "bnbt_error_log_dir", string( ) ).empty( ) )\r
152                 CFG_SetString( "bnbt_error_log_dir", string( ) );\r
153 \r
154         if( CFG_GetString( "bnbt_error_log_file_pattern", string( ) ).empty( ) )\r
155                 CFG_SetString( "bnbt_error_log_file_pattern", "%Y-%m-%de.log" );\r
156 \r
157         if( CFG_GetString( "bnbt_access_log_dir", string( ) ).empty( ) )\r
158                 CFG_SetString( "bnbt_access_log_dir", string( ) );\r
159 \r
160         if( CFG_GetString( "bnbt_access_log_file_pattern", string( ) ).empty( ) )\r
161                 CFG_SetString( "bnbt_access_log_file_pattern", "%Y-%m-%d.log" );\r
162 \r
163         if( CFG_GetInt( "bnbt_flush_interval", 0 ) < 1 )\r
164                 CFG_SetInt( "bnbt_flush_interval", 100 );\r
165 \r
166         // mysql\r
167 \r
168         if( CFG_GetString( "mysql_host", string( ) ).empty( ) )\r
169                 CFG_SetString( "mysql_host", string( ) );\r
170 \r
171         if( CFG_GetString( "mysql_database", string( ) ).empty( ) )\r
172                 CFG_SetString( "mysql_database", "bnbt" );\r
173 \r
174         if( CFG_GetString( "mysql_user", string( ) ).empty( ) )\r
175                 CFG_SetString( "mysql_user", string( ) );\r
176 \r
177         if( CFG_GetString( "mysql_password", string( ) ).empty( ) )\r
178                 CFG_SetString( "mysql_password", string( ) );\r
179 \r
180         if( CFG_GetInt( "mysql_port", -1 ) < 0 )\r
181                 CFG_SetInt( "mysql_port", 0 );\r
182 \r
183         if( CFG_GetInt( "mysql_refresh_allowed_interval", -1 ) < 0 )\r
184                 CFG_SetInt( "mysql_refresh_allowed_interval", 0 );\r
185 \r
186         if( CFG_GetInt( "mysql_refresh_stats_interval", 0 ) < 1 )\r
187                 CFG_SetInt( "mysql_refresh_stats_interval", 600 );\r
188 \r
189         if( CFG_GetInt( "mysql_override_dstate", -1 ) < 0 )\r
190                 CFG_SetInt( "mysql_override_dstate", 0 );\r
191 \r
192         // link.cpp\r
193 \r
194         if( CFG_GetInt( "bnbt_tlink_server", -1 ) < 0 )\r
195                 CFG_SetInt( "bnbt_tlink_server", 0 );\r
196 \r
197         if( CFG_GetString( "bnbt_tlink_connect", string( ) ).empty( ) )\r
198                 CFG_SetString( "bnbt_tlink_connect", string( ) );\r
199 \r
200         if( CFG_GetString( "bnbt_tlink_password", string( ) ).empty( ) )\r
201                 CFG_SetString( "bnbt_tlink_password", string( ) );\r
202 \r
203         if( CFG_GetString( "bnbt_tlink_bind", string( ) ).empty( ) )\r
204                 CFG_SetString( "bnbt_tlink_bind", string( ) );\r
205 \r
206         if( CFG_GetInt( "bnbt_tlink_port", 0 ) < 1 )\r
207                 CFG_SetInt( "bnbt_tlink_port", 5204 );\r
208 \r
209         // server.cpp\r
210 \r
211         if( CFG_GetInt( "socket_timeout", 0 ) < 1 )\r
212                 CFG_SetInt( "socket_timeout", 15 );\r
213 \r
214         if( CFG_GetInt( "bnbt_compression_level", -1 ) < 0 )\r
215                 CFG_SetInt( "bnbt_compression_level", 6 );\r
216 \r
217         if( CFG_GetString( "bind", string( ) ).empty( ) )\r
218                 CFG_SetString( "bind", string( ) );\r
219 \r
220         if( CFG_GetInt( "port", 0 ) < 1 )\r
221                 CFG_SetInt( "port", 26213 );\r
222 \r
223         // tracker.cpp\r
224 \r
225         if( CFG_GetString( "allowed_dir", string( ) ).empty( ) )\r
226                 CFG_SetString( "allowed_dir", string( ) );\r
227 \r
228         if( CFG_GetString( "bnbt_upload_dir", string( ) ).empty( ) )\r
229                 CFG_SetString( "bnbt_upload_dir", string( ) );\r
230 \r
231         if( CFG_GetString( "bnbt_external_torrent_dir", string( ) ).empty( ) )\r
232                 CFG_SetString( "bnbt_external_torrent_dir", string( ) );\r
233 \r
234         if( CFG_GetString( "bnbt_archive_dir", string( ) ).empty( ) )\r
235                 CFG_SetString( "bnbt_archive_dir", string( ) );\r
236 \r
237         if( CFG_GetString( "bnbt_file_dir", string( ) ).empty( ) )\r
238                 CFG_SetString( "bnbt_file_dir", string( ) );\r
239 \r
240         if( CFG_GetString( "dfile", string( ) ).empty( ) )\r
241                 CFG_SetString( "dfile", "dstate.bnbt" );\r
242 \r
243         if( CFG_GetString( "bnbt_comments_file", string( ) ).empty( ) )\r
244                 CFG_SetString( "bnbt_comments_file", string( ) );\r
245 \r
246         if( CFG_GetString( "bnbt_tag_file", string( ) ).empty( ) )\r
247                 CFG_SetString( "bnbt_tag_file", "tags.bnbt" );\r
248 \r
249         if( CFG_GetString( "bnbt_users_file", string( ) ).empty( ) )\r
250                 CFG_SetString( "bnbt_users_file", "users.bnbt" );\r
251 \r
252         if( CFG_GetString( "bnbt_static_header", string( ) ).empty( ) )\r
253                 CFG_SetString( "bnbt_static_header", string( ) );\r
254 \r
255         if( CFG_GetString( "bnbt_static_footer", string( ) ).empty( ) )\r
256                 CFG_SetString( "bnbt_static_footer", string( ) );\r
257 \r
258         if( CFG_GetString( "bnbt_robots_txt", string( ) ).empty( ) )\r
259                 CFG_SetString( "bnbt_robots_txt", string( ) );\r
260 \r
261         if( CFG_GetString( "bnbt_dump_xml_file", string( ) ).empty( ) )\r
262                 CFG_SetString( "bnbt_dump_xml_file", string( ) );\r
263 \r
264         if( CFG_GetString( "image_bar_fill", string( ) ).empty( ) )\r
265                 CFG_SetString( "image_bar_fill", string( ) );\r
266 \r
267         if( CFG_GetString( "image_bar_trans", string( ) ).empty( ) )\r
268                 CFG_SetString( "image_bar_trans", string( ) );\r
269 \r
270         if( CFG_GetString( "bnbt_force_announce_url", string( ) ).empty( ) )\r
271                 CFG_SetString( "bnbt_force_announce_url", string( ) );\r
272 \r
273         if( CFG_GetInt( "bnbt_force_announce_on_download", -1 ) < 0 )\r
274                 CFG_SetInt( "bnbt_force_announce_on_download", 0 );\r
275 \r
276         if( CFG_GetInt( "parse_allowed_interval", -1 ) < 0 )\r
277                 CFG_SetInt( "parse_allowed_interval", 0 );\r
278 \r
279         if( CFG_GetInt( "save_dfile_interval", 0 ) < 1 )\r
280                 CFG_SetInt( "save_dfile_interval", 300 );\r
281 \r
282         if( CFG_GetInt( "downloader_timeout_interval", 0 ) < 1 )\r
283                 CFG_SetInt( "downloader_timeout_interval", 2700 );\r
284 \r
285         if( CFG_GetInt( "bnbt_refresh_static_interval", 0 ) < 1 )\r
286                 CFG_SetInt( "bnbt_refresh_static_interval", 10 );\r
287 \r
288         if( CFG_GetInt( "bnbt_dump_xml_interval", 0 ) < 1 )\r
289                 CFG_SetInt( "bnbt_dump_xml_interval", 600 );\r
290 \r
291         if( CFG_GetInt( "bnbt_dump_xml_peers", -1 ) < 0 )\r
292                 CFG_SetInt( "bnbt_dump_xml_peers", 1 );\r
293 \r
294         if( CFG_GetInt( "announce_interval", -1 ) < 0 )\r
295                 CFG_SetInt( "announce_interval", 1800 );\r
296 \r
297         if( CFG_GetInt( "min_request_interval", -1 ) < 0 )\r
298                 CFG_SetInt( "min_request_interval", 18000 );\r
299 \r
300         if( CFG_GetInt( "response_size", -1 ) < 0 )\r
301                 CFG_SetInt( "response_size", 50 );\r
302 \r
303         if( CFG_GetInt( "max_give", -1 ) < 0 )\r
304                 CFG_SetInt( "max_give", 200 );\r
305 \r
306         if( CFG_GetInt( "keep_dead", -1 ) < 0 )\r
307                 if( CFG_GetInt( "bnbt_display_all", -1) >= 0 ){\r
308                         if( CFG_GetInt( "bnbt_display_all", -1) == 0 )\r
309                                 CFG_SetInt( "keep_dead", 0 );\r
310                         else if( CFG_GetInt( "bnbt_display_all", -1) == 1 )\r
311                                 CFG_SetInt( "keep_dead", 1 );\r
312                 }\r
313                 else\r
314                         CFG_SetInt( "keep_dead", 0 );\r
315 \r
316         if( CFG_GetInt( "bnbt_allow_scrape", -1 ) < 0 )\r
317                 CFG_SetInt( "bnbt_allow_scrape", 1 );\r
318 \r
319         if( CFG_GetInt( "bnbt_count_unique_peers", -1 ) < 0 )\r
320                 CFG_SetInt( "bnbt_count_unique_peers", 1 );\r
321 \r
322         if( CFG_GetInt( "bnbt_delete_invalid", -1 ) < 0 )\r
323                 CFG_SetInt( "bnbt_delete_invalid", 0 );\r
324 \r
325         if( CFG_GetInt( "bnbt_parse_on_upload", -1 ) < 0 )\r
326                 CFG_SetInt( "bnbt_parse_on_upload", 1 );\r
327 \r
328         if( CFG_GetInt( "bnbt_max_torrents", -1 ) < 0 )\r
329                 CFG_SetInt( "bnbt_max_torrents", 0 );\r
330 \r
331         if( CFG_GetInt( "bnbt_show_info_hash", -1 ) < 0 )\r
332                 CFG_SetInt( "bnbt_show_info_hash", 0 );\r
333 \r
334         if( CFG_GetInt( "show_names", -1 ) < 0 )\r
335                 CFG_SetInt( "show_names", 1 );\r
336 \r
337         if( CFG_GetInt( "bnbt_show_stats", -1 ) < 0 )\r
338                 CFG_SetInt( "bnbt_show_stats", 1 );\r
339 \r
340         if( CFG_GetInt( "bnbt_allow_torrent_downloads", -1 ) < 0 )\r
341                 CFG_SetInt( "bnbt_allow_torrent_downloads", 1 );\r
342 \r
343         if( CFG_GetInt( "bnbt_allow_comments", -1 ) < 0 )\r
344                 CFG_SetInt( "bnbt_allow_comments", 0 );\r
345 \r
346         if( CFG_GetInt( "bnbt_show_added", -1 ) < 0 )\r
347                 CFG_SetInt( "bnbt_show_added", 1 );\r
348 \r
349         if( CFG_GetInt( "bnbt_show_size", -1 ) < 0 )\r
350                 CFG_SetInt( "bnbt_show_size", 1 );\r
351 \r
352         if( CFG_GetInt( "bnbt_show_num_files", -1 ) < 0 )\r
353                 CFG_SetInt( "bnbt_show_num_files", 1 );\r
354 \r
355         if( CFG_GetInt( "bnbt_show_completed", -1 ) < 0 )\r
356                 CFG_SetInt( "bnbt_show_completed", 0 );\r
357 \r
358         if( CFG_GetInt( "bnbt_show_transferred", -1 ) < 0 )\r
359                 CFG_SetInt( "bnbt_show_transferred", 0 );\r
360 \r
361         if( CFG_GetInt( "bnbt_show_min_left", -1 ) < 0 )\r
362                 CFG_SetInt( "bnbt_show_min_left", 0 );\r
363 \r
364         if( CFG_GetInt( "bnbt_show_average_left", -1 ) < 0 )\r
365                 CFG_SetInt( "bnbt_show_average_left", 0 );\r
366 \r
367         if( CFG_GetInt( "bnbt_show_max_left", -1 ) < 0 )\r
368                 CFG_SetInt( "bnbt_show_max_left", 0 );\r
369 \r
370         if( CFG_GetInt( "bnbt_show_left_as_progress", -1 ) < 0 )\r
371                 CFG_SetInt( "bnbt_show_left_as_progress", 1 );\r
372 \r
373         if( CFG_GetInt( "bnbt_show_uploader", -1 ) < 0 )\r
374                 CFG_SetInt( "bnbt_show_uploader", 0 );\r
375 \r
376         if( CFG_GetInt( "bnbt_allow_info_link", -1 ) < 0 )\r
377                 CFG_SetInt( "bnbt_allow_info_link", 0 );\r
378 \r
379         if( CFG_GetInt( "bnbt_allow_search", -1 ) < 0 )\r
380                 CFG_SetInt( "bnbt_allow_search", 1 );\r
381 \r
382         if( CFG_GetInt( "bnbt_allow_sort", -1 ) < 0 )\r
383                 CFG_SetInt( "bnbt_allow_sort", 1 );\r
384 \r
385         if( CFG_GetInt( "bnbt_show_file_comment", -1 ) < 0 )\r
386                 CFG_SetInt( "bnbt_show_file_comment", 1 );\r
387 \r
388         if( CFG_GetInt( "bnbt_show_file_contents", -1 ) < 0 )\r
389                 CFG_SetInt( "bnbt_show_file_contents", 0 );\r
390 \r
391         if( CFG_GetInt( "bnbt_show_share_ratios", -1 ) < 0 )\r
392                 CFG_SetInt( "bnbt_show_share_ratios", 1 );\r
393 \r
394         if( CFG_GetInt( "bnbt_show_average_dl_rate", -1 ) < 0 )\r
395                 CFG_SetInt( "bnbt_show_average_dl_rate", 0 );\r
396 \r
397         if( CFG_GetInt( "bnbt_show_average_ul_rate", -1 ) < 0 )\r
398                 CFG_SetInt( "bnbt_show_average_ul_rate", 0 );\r
399 \r
400         if( CFG_GetInt( "bnbt_delete_own_torrents", -1 ) < 0 )\r
401                 CFG_SetInt( "bnbt_delete_own_torrents", 1 );\r
402 \r
403         if( CFG_GetInt( "bnbt_show_gen_time", -1 ) < 0 )\r
404                 CFG_SetInt( "bnbt_show_gen_time", 1 );\r
405 \r
406         if( CFG_GetInt( "bnbt_per_page", -1 ) < 0 )\r
407                 CFG_SetInt( "bnbt_per_page", 20 );\r
408 \r
409         if( CFG_GetInt( "bnbt_users_per_page", -1 ) < 0 )\r
410                 CFG_SetInt( "bnbt_users_per_page", 50 );\r
411 \r
412         if( CFG_GetInt( "bnbt_max_peers_display", -1 ) < 0 )\r
413                 CFG_SetInt( "bnbt_max_peers_display", 500 );\r
414 \r
415         if( CFG_GetInt( "bnbt_guest_access", -1 ) < 0 )\r
416                 CFG_SetInt( "bnbt_guest_access", ACCESS_VIEW | ACCESS_DL | ACCESS_SIGNUP );\r
417 \r
418         if( CFG_GetInt( "bnbt_member_access", -1 ) < 0 )\r
419                 CFG_SetInt( "bnbt_member_access", ACCESS_VIEW | ACCESS_DL | ACCESS_COMMENTS | ACCESS_UPLOAD | ACCESS_SIGNUP );\r
420 \r
421         if( CFG_GetInt( "bnbt_file_expires", -1 ) < 0 )\r
422                 CFG_SetInt( "bnbt_file_expires", 180 );\r
423 \r
424         if( CFG_GetInt( "bnbt_name_length", -1 ) < 0 )\r
425                 CFG_SetInt( "bnbt_name_length", 32 );\r
426 \r
427         if( CFG_GetInt( "bnbt_comment_length", -1 ) < 0 )\r
428                 CFG_SetInt( "bnbt_comment_length", 800 );\r
429 \r
430         if( CFG_GetInt( "bnbt_max_recv_size", -1 ) < 0 )\r
431                 CFG_SetInt( "bnbt_max_recv_size", 524288 );\r
432 \r
433         // CBTT values\r
434         if( CFG_GetInt( "cbtt_ban_mode", -1 ) < 0 )\r
435                 CFG_SetInt( "cbtt_ban_mode", 0 );\r
436 \r
437         if( CFG_GetInt( "cbtt_restricted_peer_spoofing", -1 ) < 0 )\r
438                 CFG_SetInt( "cbtt_restricted_peer_spoofing", 0 );\r
439 \r
440         if( CFG_GetString( "cbtt_ban_file", string( ) ).empty( ) )\r
441                 CFG_SetString( "cbtt_ban_file", "clientbans.bnbt" );\r
442 \r
443         if( CFG_GetString( "cbtt_service_name", string() ).empty() )\r
444                 if( !CFG_GetString( "trinity_nt_service_name",string()).empty() )\r
445                         CFG_SetString( "cbtt_service_name", CFG_GetString( "trinity_nt_service_name",string()) );\r
446                 else\r
447                         CFG_SetString( "cbtt_service_name", "BNBT Service" );\r
448                 \r
449         if( CFG_GetInt( "cbtt_ip_ban_mode", -1 ) < 0 )\r
450                 CFG_SetInt( "cbtt_ip_ban_mode", 0 );\r
451 \r
452         if( CFG_GetString( "cbtt_ipban_file", string( ) ).empty( ) )\r
453                 CFG_SetString( "cbtt_ipban_file", "bans.bnbt" );\r
454 \r
455         if( CFG_GetInt( "cbtt_dont_compress_torrents", -1 ) < 0 )\r
456                 CFG_SetInt( "cbtt_dont_compress_torrents", 0 );\r
457 \r
458         if( CFG_GetInt( "cbtt_restrict_overflow", -1 ) <0 )\r
459                 CFG_SetInt( "cbtt_restrict_overflow", 0 );\r
460 \r
461         if( CFG_GetString( "cbtt_restrict_overflow_limit", string( ) ).empty( ) )\r
462                 CFG_SetString( "cbtt_restrict_overflow_limit", "1099511627776" );\r
463 \r
464         if( CFG_GetInt( "cbtt_block_private_ip", -1 ) < 0 )\r
465                 if( CFG_GetInt( "bnbt_block_private_ip", -1 ) >= 0 ) {\r
466             CFG_SetInt( "cbtt_block_private_ip", CFG_GetInt( "bnbt_block_private_ip", -1 ));\r
467                         CFG_Delete( "bnbt_block_private_ip");\r
468                 }\r
469                 else\r
470                         CFG_SetInt( "cbtt_block_private_ip", 0 );\r
471 \r
472         if( CFG_GetInt( "cbtt_blacklist_common_p2p_ports", -1) < 0)\r
473                 CFG_SetInt( "cbtt_blacklist_common_p2p_ports", 0);\r
474 \r
475         if( CFG_GetInt( "cbtt_blacklist_below_1024" , -1) < 0)\r
476                 CFG_SetInt( "cbtt_blacklist_below_1024" , 0);\r
477 \r
478         if( CFG_GetInt( "only_local_override_ip", -1 ) < 0 )\r
479                 CFG_SetInt( "only_local_override_ip", 0 );\r
480 \r
481         if( CFG_GetInt( "mysql_cbtt_ttrader_support", -1 ) < 0 )\r
482         CFG_SetInt( "mysql_cbtt_ttrader_support", 0 );\r
483 \r
484         if( CFG_GetString( "favicon", string( ) ).empty() )\r
485                 CFG_SetString( "favicon", string( ) );\r
486 \r
487         if( CFG_GetInt( "bnbt_private_tracker_flag", -1 ) < 0 )\r
488                 CFG_SetInt( "bnbt_private_tracker_flag", 0 );\r
489 \r
490         if( CFG_GetInt( "bnbt_private_tracker_flag", -1 ) > 1)\r
491                 CFG_SetInt( "bnbt_private_tracker_flag", 1 );\r
492 \r
493         if( CFG_GetInt( "bnbt_swap_torrent_link", -1 ) < 0 )\r
494                 CFG_SetInt( "bnbt_swap_torrent_link", 0 );\r
495 \r
496         if( CFG_GetInt( "bnbt_swap_torrent_link", -1 ) > 1)\r
497                 CFG_SetInt( "bnbt_swap_torrent_link", 1 );\r
498 \r
499         if( CFG_GetInt( "cbtt_require_compact", -1 ) < 0 )\r
500                 CFG_SetInt( "cbtt_require_compact", 0 );\r
501 \r
502         if( CFG_GetInt( "cbtt_require_compact", -1 ) > 1)\r
503                 CFG_SetInt( "cbtt_require_compact", 1 );\r
504 \r
505         if( CFG_GetInt( "cbtt_require_no_peer_id", -1 ) < 0 )\r
506                 CFG_SetInt( "cbtt_require_no_peer_id", 0 );\r
507 \r
508         if( CFG_GetInt( "cbtt_require_no_peer_id", -1 ) > 1)\r
509                 CFG_SetInt( "cbtt_require_no_peer_id", 1 );\r
510 \r
511         if( CFG_GetInt( "bnbt_allow_scrape_global", -1 ) < 0 )\r
512                 CFG_SetInt( "bnbt_allow_scrape_global", 0 );\r
513 \r
514         if( CFG_GetInt( "bnbt_allow_scrape_global", -1 ) > 1)\r
515                 CFG_SetInt( "bnbt_allow_scrape_global", 1 );\r
516 \r
517         if( CFG_GetInt( "bnbt_use_announce_key", -1 ) != 0 )\r
518                 CFG_SetInt( "bnbt_use_announce_key", 1 );\r
519 \r
520         if( CFG_GetInt( "bnbt_require_announce_key", -1 ) != 0 )\r
521                 CFG_SetInt( "bnbt_require_announce_key", 1 );\r
522 \r
523         if( CFG_GetInt( "bnbt_disable_html", -1 ) < 0 )\r
524                 CFG_SetInt( "bnbt_disable_html", 0 );\r
525 \r
526         if( CFG_GetInt( "bnbt_disable_html", -1 ) > 1)\r
527                 CFG_SetInt( "bnbt_disable_html", 1 );\r
528 \r
529         if( CFG_GetInt( "bnbt_refresh_fast_cache_interval", -1 ) < 0 )\r
530                 CFG_SetInt( "bnbt_refresh_fast_cache_interval", 30 );\r
531 \r
532         if( CFG_GetInt( "min_announce_interval", -1 ) < 0 )\r
533                 CFG_SetInt( "min_announce_interval", CFG_GetInt("announce_interval", 1800) / 1.2 );\r
534 \r
535     if( CFG_GetInt( "cbtt_abuse_detection", -1 ) < 0 )\r
536                 CFG_SetInt( "cbtt_abuse_detection", 0 );\r
537 \r
538         if( CFG_GetInt( "cbtt_abuse_hammer_limit", -1 ) < 0 )\r
539                 CFG_SetInt( "cbtt_abuse_hammer_limit", 10 );\r
540 \r
541         if( CFG_GetInt( "cbtt_abuse_limit", -1 ) < 0 )\r
542                 CFG_SetInt( "cbtt_abuse_limit", 5 );\r
543 \r
544         // Creates the Tracker Title configuration key\r
545 \r
546         if( CFG_GetString( "bnbt_tracker_title", string( ) ).empty( ) )\r
547                 CFG_SetString( "bnbt_tracker_title", string( ) );\r
548 \r
549         if( CFG_GetString( "cbtt_download_link_image", string( ) ).empty( ) )\r
550                 CFG_SetString( "cbtt_download_link_image", "" );\r
551 \r
552         if( CFG_GetString( "cbtt_stats_link_image", string( ) ).empty( ) )\r
553                 CFG_SetString( "cbtt_stats_link_image", "" );\r
554 \r
555         if( CFG_GetString( "cbtt_scrape_file", string( ) ).empty() )\r
556                 CFG_SetString( "cbtt_scrape_file", "" );\r
557 \r
558         if( CFG_GetInt( "cbtt_scrape_save_interval", -1 ) < 0 )\r
559                 CFG_SetInt( "cbtt_scrape_save_interval", 0 );\r
560 \r
561         if( CFG_GetInt( "cbtt_page_number_count" , 2 ) < 3 )\r
562                 CFG_SetInt( "cbtt_page_number_count", 3);\r
563 \r
564         if( CFG_GetInt( "cbtt_hide_login_links", -1 ) < 0 )\r
565                 CFG_SetInt( "cbtt_hide_login_links", 0 );\r
566 \r
567 \r
568         //RSS Feed Support - code by labarks\r
569         if( CFG_GetString( "bnbt_rss_file", string( ) ).empty( ) )\r
570                 CFG_SetString( "bnbt_rss_file", string( ) );\r
571                 \r
572         if( CFG_GetString( "bnbt_rss_online_dir", string( ) ).empty( ) )\r
573                 CFG_SetString( "bnbt_rss_online_dir", string( ) );\r
574 \r
575         if( CFG_GetString( "bnbt_rss_online_url", string( ) ).empty( ) )\r
576                 CFG_SetString( "bnbt_rss_online_url", string( ) );\r
577                 \r
578         if( CFG_GetInt( "bnbt_rss_file_mode", -1 ) < 0 )\r
579                 CFG_SetInt( "bnbt_rss_file_mode", 0 );\r
580                 \r
581         if( CFG_GetString( "bnbt_rss_channel_title", string( ) ).empty( ) )\r
582                 CFG_SetString( "bnbt_rss_channel_title", "My BNBT RSS Feed" );\r
583         \r
584         if( CFG_GetString( "bnbt_rss_channel_link", string( ) ).empty( ) )\r
585                 CFG_SetString( "bnbt_rss_channel_link", "http://localhost:26213/" );\r
586                         \r
587         if( CFG_GetString( "bnbt_rss_channel_description", string( ) ).empty( ) )\r
588                 CFG_SetString( "bnbt_rss_channel_description", "BitTorrent RSS Feed for BNBT" );\r
589         \r
590         if( CFG_GetInt( "bnbt_rss_channel_ttl", -1 ) < 0 )\r
591                 CFG_SetInt( "bnbt_rss_channel_ttl", 60 );\r
592         \r
593         if( CFG_GetString( "bnbt_rss_channel_language", string( ) ).empty( ) )\r
594                 CFG_SetString( "bnbt_rss_channel_language", "en-us" );\r
595                 \r
596         if( CFG_GetString( "bnbt_rss_channel_image_url", string( ) ).empty( ) )\r
597                 CFG_SetString( "bnbt_rss_channel_image_url", string( ) );\r
598                 \r
599         if( CFG_GetInt( "bnbt_rss_channel_image_width", -1 ) < 0 )\r
600                 CFG_SetInt( "bnbt_rss_channel_image_width", 0 );\r
601 \r
602         if( CFG_GetInt( "bnbt_rss_channel_image_height", -1 ) < 0 )\r
603                 CFG_SetInt( "bnbt_rss_channel_image_height", 0 );\r
604         \r
605         if( CFG_GetString( "bnbt_rss_channel_copyright", string( ) ).empty( ) )\r
606                 CFG_SetString( "bnbt_rss_channel_copyright", string( ) );\r
607         \r
608         if( CFG_GetInt( "bnbt_rss_limit", -1 ) < 0 )\r
609                 CFG_SetInt( "bnbt_rss_limit", 25 );\r
610 \r
611         if( CFG_GetInt( "bnbt_rss_interval", -1 ) < 0 )\r
612                 CFG_SetInt( "bnbt_rss_interval", 30 );\r
613         //end addition\r
614 \r
615 }\r