00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "services.h"
00015
00016
00017
00018
00019 int rdb_init()
00020 {
00021
00022 #ifdef USE_MYSQL
00023 return db_mysql_init();
00024 #endif
00025
00026 return 0;
00027 }
00028
00029
00030
00031
00032 int rdb_open()
00033 {
00034
00035 #ifdef USE_MYSQL
00036 return db_mysql_open();
00037 #endif
00038
00039 return 0;
00040 }
00041
00042
00043
00044
00045
00046
00047
00048 int rdb_close()
00049 {
00050
00051 #ifdef USE_MYSQL
00052 return 1;
00053 #endif
00054
00055 return 1;
00056 }
00057
00058
00059
00060
00061 char *rdb_quote(char *str)
00062 {
00063 #ifdef USE_MYSQL
00064 return db_mysql_quote(str);
00065 #endif
00066
00067 return sstrdup(str);
00068 }
00069
00070
00071
00072
00073
00074
00075
00076 int rdb_tag_table(char *table)
00077 {
00078 #ifdef USE_MYSQL
00079 return db_mysql_try("UPDATE %s SET active = 0", table);
00080 #endif
00081
00082 return 0;
00083
00084 }
00085
00086
00087 int rdb_tag_table_where(char *table, char *clause)
00088 {
00089 #ifdef USE_MYSQL
00090 return db_mysql_try("UPDATE %s SET active = 0 WHERE %s", table,
00091 clause);
00092 #endif
00093
00094 return 0;
00095
00096 }
00097
00098
00099
00100
00101 int rdb_empty_table(char *table)
00102 {
00103 #ifdef USE_MYSQL
00104 return db_mysql_try("TRUNCATE TABLE %s", table);
00105 #endif
00106
00107 return 0;
00108
00109 }
00110
00111
00112
00113
00114 int rdb_clean_table(char *table)
00115 {
00116 #ifdef USE_MYSQL
00117 return db_mysql_try("DELETE FROM %s WHERE active = 0", table);
00118 #endif
00119
00120 return 0;
00121 }
00122
00123
00124 int rdb_clean_table_where(char *table, char *clause)
00125 {
00126 #ifdef USE_MYSQL
00127 return db_mysql_try("DELETE FROM %s WHERE active = 0 AND (%s)", table,
00128 clause);
00129 #endif
00130
00131 return 0;
00132 }
00133
00134
00135
00136
00137
00138
00139 int rdb_scrub_table(char *table, char *clause)
00140 {
00141 #ifdef USE_MYSQL
00142 return db_mysql_try("DELETE FROM %s WHERE %s", table, clause);
00143 #endif
00144
00145 return 0;
00146
00147 }
00148
00149
00150
00151
00152
00153
00154 int rdb_direct_query(char *query)
00155 {
00156
00157 #ifdef USE_MYSQL
00158 alog("Direct Query: %s", query);
00159 return db_mysql_query(query);
00160 #endif
00161
00162 return 0;
00163
00164 }
00165
00166
00167
00168
00169
00170
00171
00172 int rdb_ns_set_display(char *newnick, char *oldnick)
00173 {
00174 int ret = 0;
00175 char *q_newnick;
00176 char *q_oldnick;
00177
00178 q_newnick = rdb_quote(newnick);
00179 q_oldnick = rdb_quote(oldnick);
00180
00181 #ifdef USE_MYSQL
00182
00183 ret =
00184 db_mysql_try
00185 ("UPDATE anope_ns_core SET display = '%s' WHERE display = '%s'",
00186 q_newnick, q_oldnick);
00187
00188
00189 if (ret)
00190 ret =
00191 db_mysql_try
00192 ("UPDATE anope_ns_alias SET display='%s' WHERE display='%s'",
00193 q_newnick, q_oldnick);
00194
00195
00196 if (ret)
00197 ret =
00198 db_mysql_try
00199 ("UPDATE anope_cs_access SET display='%s' WHERE display='%s'",
00200 q_newnick, q_oldnick);
00201
00202
00203 if (ret)
00204 ret =
00205 db_mysql_try
00206 ("UPDATE anope_cs_akicks SET creator='%s' WHERE creator='%s'",
00207 q_newnick, q_oldnick);
00208
00209
00210 if (ret)
00211 ret =
00212 db_mysql_try
00213 ("UPDATE anope_ms_info SET sender='%s' WHERE sender='%s'",
00214 q_newnick, q_oldnick);
00215
00216
00217 if (ret)
00218 ret =
00219 db_mysql_try
00220 ("UPDATE anope_ms_info SET receiver='%s' WHERE receiver='%s'",
00221 q_newnick, q_oldnick);
00222
00223
00224 if (ret)
00225 ret =
00226 db_mysql_try
00227 ("UPDATE anope_cs_akicks SET dmask='%s' WHERE dmask='%s' AND flags & %d",
00228 q_newnick, q_oldnick, AK_ISNICK);
00229
00230
00231 if (ret)
00232 ret =
00233 db_mysql_try
00234 ("UPDATE anope_ns_access SET display='%s' WHERE display='%s'",
00235 q_newnick, q_oldnick);
00236
00237
00238
00239
00240
00241
00242
00243
00244 #endif
00245
00246 free(q_newnick);
00247 free(q_oldnick);
00248
00249 return ret;
00250 }
00251
00252
00253
00254 int rdb_save_ns_core(NickCore * nc)
00255 {
00256
00257 #ifdef USE_MYSQL
00258 return db_mysql_save_ns_core(nc);
00259 #endif
00260
00261 return 0;
00262 }
00263
00264
00265
00266 int rdb_save_ns_alias(NickAlias * na)
00267 {
00268
00269 #ifdef USE_MYSQL
00270 return db_mysql_save_ns_alias(na);
00271 #endif
00272
00273 return 0;
00274 }
00275
00276
00277
00278 int rdb_save_ns_req(NickRequest * nr)
00279 {
00280
00281 #ifdef USE_MYSQL
00282 return db_mysql_save_ns_req(nr);
00283 #endif
00284
00285 return 0;
00286 }
00287
00288
00289
00290 int rdb_save_cs_info(ChannelInfo * ci)
00291 {
00292
00293 #ifdef USE_MYSQL
00294 return db_mysql_save_cs_info(ci);
00295 #endif
00296
00297 return 0;
00298 }
00299
00300
00301
00302 int rdb_save_bs_core(BotInfo * bi)
00303 {
00304
00305 #ifdef USE_MYSQL
00306 return db_mysql_save_bs_core(bi);
00307 #endif
00308
00309 return 0;
00310 }
00311
00312
00313
00314 int rdb_save_hs_core(HostCore * hc)
00315 {
00316
00317 #ifdef USE_MYSQL
00318 return db_mysql_save_hs_core(hc);
00319 #endif
00320
00321 return 0;
00322 }
00323
00324
00325
00326 int rdb_save_os_db(unsigned int maxucnt, unsigned int maxutime,
00327 SList * ak, SList * sgl, SList * sql, SList * szl)
00328 {
00329
00330 #ifdef USE_MYSQL
00331 return db_mysql_save_os_db(maxusercnt, maxusertime, ak, sgl, sql, szl);
00332 #endif
00333
00334 return 0;
00335 }
00336
00337
00338
00339 int rdb_save_news(NewsItem * ni)
00340 {
00341
00342 #ifdef USE_MYSQL
00343 return db_mysql_save_news(ni);
00344 #endif
00345
00346 return 0;
00347 }
00348
00349
00350
00351 int rdb_load_bs_dbase(void)
00352 {
00353
00354 #ifdef USE_MYSQL
00355 return db_mysql_load_bs_dbase();
00356 #endif
00357
00358 return 0;
00359 }
00360
00361
00362
00363 int rdb_load_hs_dbase(void)
00364 {
00365
00366 #ifdef USE_MYSQL
00367 return db_mysql_load_hs_dbase();
00368 #endif
00369
00370 return 0;
00371 }
00372
00373
00374
00375 int rdb_load_ns_dbase(void)
00376 {
00377
00378 #ifdef USE_MYSQL
00379 return db_mysql_load_ns_dbase();
00380 #endif
00381
00382 return 0;
00383 }
00384
00385
00386
00387 int rdb_load_news(void)
00388 {
00389
00390 #ifdef USE_MYSQL
00391 return db_mysql_load_news();
00392 #endif
00393
00394 return 0;
00395 }
00396
00397
00398
00399 int rdb_load_exceptions(void)
00400 {
00401
00402 #ifdef USE_MYSQL
00403 return db_mysql_load_exceptions();
00404 #endif
00405
00406 return 0;
00407 }
00408
00409
00410
00411 int rdb_load_cs_dbase(void)
00412 {
00413
00414 #ifdef USE_MYSQL
00415 return db_mysql_load_cs_dbase();
00416 #endif
00417
00418 return 0;
00419 }
00420
00421
00422
00423 int rdb_load_os_dbase(void)
00424 {
00425
00426 #ifdef USE_MYSQL
00427 return db_mysql_load_os_dbase();
00428 #endif
00429
00430 return 0;
00431 }
00432
00433
00434
00435 int rdb_load_ns_req_dbase(void)
00436 {
00437
00438 #ifdef USE_MYSQL
00439 return db_mysql_load_ns_req_dbase();
00440 #endif
00441
00442 return 0;
00443 }
00444
00445
00446
00447 #define LOAD_DBASE(num, name, func) {\
00448 if (!func) {\
00449 alog("RDB unable to load %s database (%d/8) !!!", name, num);\
00450 return 0;\
00451 }\
00452 if (debug)\
00453 alog("debug: RDB Loaded %s DataBase (%d/8)", name, num);\
00454 }
00455
00456 int rdb_load_dbases(void)
00457 {
00458 if (!skeleton) {
00459 LOAD_DBASE(1, "NickServ", rdb_load_ns_dbase());
00460
00461 if (s_HostServ) {
00462 LOAD_DBASE(2, "HostServ", rdb_load_hs_dbase());
00463 }
00464
00465 if (s_BotServ) {
00466 LOAD_DBASE(3, "BotServ", rdb_load_bs_dbase());
00467 }
00468
00469 LOAD_DBASE(4, "ChanServ", rdb_load_cs_dbase());
00470 }
00471
00472 LOAD_DBASE(5, "OperServ", rdb_load_os_dbase());
00473 LOAD_DBASE(6, "News", rdb_load_news());
00474 LOAD_DBASE(7, "Exception", rdb_load_exceptions());
00475
00476 if (PreNickDBName) {
00477 LOAD_DBASE(8, "PreNick", rdb_load_ns_req_dbase());
00478 } else if (debug) {
00479 alog("debug: RDB No need to load PreNickDB (8/8)");
00480 }
00481
00482 alog("RDB: All DataBases loaded.");
00483
00484 return 0;
00485 }
00486
00487
00488
00489 int rdb_save_exceptions(Exception * e)
00490 {
00491
00492 #ifdef USE_MYSQL
00493 return db_mysql_save_exceptions(e);
00494 #endif
00495
00496 return 0;
00497 }
00498
00499