1
0
mirror of https://github.com/anope/anope.git synced 2026-07-01 23:06:38 +02:00

Rip out SQL. It's utterly useless in current implementation.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1502 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
Robin Burchell w00t@inspircd.org
2008-11-02 23:50:53 +00:00
parent 232d1b5e88
commit ec9dafb778
25 changed files with 53 additions and 3308 deletions
+2 -4
View File
@@ -12,8 +12,6 @@ RM=@RM@
CP=@CP@
TOUCH=@TOUCH@
MODULE_PATH=@MODULE_PATH@
MYSQL=@MYSQL@
RDB=@RDB@
LDFLAGS=@LDFLAGS@
RUNGROUP=@RUNGROUP@
SHARED=@SHARED@
@@ -26,8 +24,8 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' 'RDB=${RDB}'\
'MYSQL=${MYSQL}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}'
'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
build: language headers
@${MAKE} -C src ${MAKEARGS} all
Vendored
+1 -19
View File
@@ -662,8 +662,6 @@ CP
TOUCH
INSTALL
MYSQLCONF
MYSQL
RDB
ANOPELIBS
CPP
GREP
@@ -3321,20 +3319,6 @@ fi
echo $ac_cv_mysql_valid >&6
if test "$ac_cv_mysql_valid" = "yes"; then
cat >>confdefs.h <<_ACEOF
#define USE_MYSQL 1
_ACEOF
cat >>confdefs.h <<_ACEOF
#define USE_RDB 1
_ACEOF
MYSQL=" mysql.c "
RDB=" rdb.c "
DIS_MYSQL=" MySQL: Yes"
else
CFLAGS="$hold_cflags"
@@ -8473,8 +8457,6 @@ CP!$CP$ac_delim
TOUCH!$TOUCH$ac_delim
INSTALL!$INSTALL$ac_delim
MYSQLCONF!$MYSQLCONF$ac_delim
MYSQL!$MYSQL$ac_delim
RDB!$RDB$ac_delim
ANOPELIBS!$ANOPELIBS$ac_delim
CPP!$CPP$ac_delim
GREP!$GREP$ac_delim
@@ -8489,7 +8471,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 63; then
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 61; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-6
View File
@@ -112,12 +112,6 @@ int main()
], ac_cv_mysql_valid=yes, ac_cv_mysql_valid=no)
echo $ac_cv_mysql_valid >&6
if test "$ac_cv_mysql_valid" = "yes"; then
AC_DEFINE_UNQUOTED(USE_MYSQL,1,"Use Mysql")
AC_DEFINE_UNQUOTED(USE_RDB,1,"Use RDB")
MYSQL=" mysql.c "
RDB=" rdb.c "
AC_SUBST(MYSQL)
AC_SUBST(RDB)
DIS_MYSQL=" MySQL: Yes"
else
CFLAGS="$hold_cflags"
-57
View File
@@ -1454,63 +1454,6 @@ OSOpersOnly
#
#DefConAkillReason "This network is currently not accepting connections, please try again later"
###########################################################################
#
# MySQL configuration
#
###########################################################################
#
# Mysql [OPTIONAL]
#
# Your MySQL configuration for use with Anope.
# To disable MySQL functionality, just comment out this block.
# To make use of MySQL use these directives and change their
# setting to the appropriate values.
#
# MysqlHost defines the Mysql server hostname.
# MysqlUser defines the Mysql user to log in with.
# MysqlPass defines the Mysql pass required for the specified user to log in.
# MysqlName defines the Mysql database name Anope uses
# MysqlSock defines the Mysql UNIX socket
# MysqlPort defines the Mysql TCP port
#
#MysqlHost "localhost"
#MysqlUser "Anonymous"
#MysqlPass ""
#MysqlName "anope"
#MysqlSock "/tmp/mysql.sock"
#MysqlPort 3306
# MysqlSecure "<des>|<md5>|<sha>|<key>" [OPTIONAL]
#
# Method for storing passwords on MySQL. Available methods are:
# Empty or not set will save your passwords as clear text.
# des : Encrypt using a simple DES algorithm.
# md5 : Produces the md5 hash for the password.
# sha : Calculates the checksum using a Secure Hash Algorithm.
# key : Encodes using "key" as password.
# Please read docs/MYSQL file for more info and details.
#
#MysqlSecure ""
# MysqlRetries <value> [OPTIONAL]
# MysqlRetryGap <value> [OPTIONAL]
#
# These values let you define how often and with how much interruption Anope
# shall retry to open a connection when losing the contact to the mysql db.
# The product of these values must be between 1 and 60.
#
#MysqlRetries 10
#MysqlRetryGap 1
# UseRDB [OPTIONAL]
#
# Enable this if you want anope to load its data from a remote database.
# (e.g. MySQL)
#
#UseRDB
###########################################################################
#
# Module configuration
-55
View File
@@ -70,7 +70,6 @@ E void botmsgs(User *u, BotInfo *bi, char *buf);
E void botchanmsgs(User *u, ChannelInfo *ci, char *buf);
E void load_bs_dbase(void);
E void save_bs_dbase(void);
E void save_bs_rdb_dbase(void);
E BotInfo *findbot(const char *nick);
E void bot_join(ChannelInfo *ci);
E char *normalizeBuffer(const char *);
@@ -168,7 +167,6 @@ E void cs_init(void);
E void chanserv(User * u, char *buf);
E void load_cs_dbase(void);
E void save_cs_dbase(void);
E void save_cs_rdb_dbase(void);
E void expire_chans(void);
E void cs_remove_nick(const NickCore * nc);
@@ -265,7 +263,6 @@ E char *desc_HostServ;
E char *s_HostServ;
E void load_hs_dbase(void);
E void save_hs_dbase(void);
E void save_hs_rdb_dbase(void);
E int do_on_id(User * u);
E void delHostCore(char *nick);
E void hostserv(User * u, char *buf);
@@ -456,49 +453,6 @@ E char *UlineServers;
E char **Ulines;
E int NumUlines;
#ifdef USE_RDB
E int rdb_init();
E int rdb_open();
E int rdb_close();
E char *rdb_quote(char *str);
E int rdb_tag_table(const char* table);
E int rdb_tag_table_where(const char* table, const char* clause);
E int rdb_empty_table(const char* table);
E int rdb_clean_table(const char* table);
E int rdb_clean_table_where(const char* table, const char* clause);
E int rdb_scrub_table(const char* table, const char* clause);
E int rdb_direct_query(char *query);
E int rdb_ns_set_display(char *newnick, char *oldnick);
E int rdb_save_ns_core(NickCore * nc);
E int rdb_save_ns_alias(NickAlias * na);
E int rdb_save_ns_req(NickRequest * nr);
E int rdb_save_cs_info(ChannelInfo * ci);
E int rdb_save_bs_core(BotInfo * bi);
E int rdb_save_bs_rdb_core(BotInfo * bi);
E int rdb_save_hs_core(HostCore * hc);
E int rdb_save_os_db(unsigned int maxucnt, unsigned int maxutime,
SList * ak, SList * sgl, SList * sql, SList * szl);
E int rdb_save_news(NewsItem * ni);
E int rdb_save_exceptions(Exception * e);
E int rdb_load_bs_dbase(void);
E int rdb_load_hs_dbase(void);
E int rdb_load_ns_dbase(void);
E int rdb_load_dbases(void);
#endif
#ifdef USE_MYSQL
E char *MysqlHost;
E char *MysqlUser;
E char *MysqlPass;
E char *MysqlName;
E int MysqlPort;
E char *MysqlSock;
E char *MysqlSecure;
E int MysqlRetries;
E int MysqlRetryGap;
E int UseRDB;
#endif
E int read_config(int reload);
E int DefConLevel;
@@ -644,10 +598,6 @@ E int nothird;
E int noexpire;
E int protocoldebug;
#ifdef USE_RDB
E int do_mysql;
#endif
E int is44;
E int quitting;
E int delayed_quit;
@@ -773,7 +723,6 @@ E NewsItem *news;
E void get_news_stats(long *nrec, long *memuse);
E void load_news(void);
E void save_news(void);
E void save_rdb_news(void);
E void display_news(User * u, int16 type);
E int do_logonnews(User * u);
E int do_opernews(User * u);
@@ -805,8 +754,6 @@ E void load_ns_dbase(void);
E void load_ns_req_db(void);
E void save_ns_dbase(void);
E void save_ns_req_dbase(void);
E void save_ns_rdb_dbase(void);
E void save_ns_req_rdb_dbase(void);
E int validate_user(User * u);
E void cancel_user(User * u);
E int nick_identified(User * u);
@@ -841,7 +788,6 @@ E void operserv(User *u, char *buf);
E void os_init(void);
E void load_os_dbase(void);
E void save_os_dbase(void);
E void save_os_rdb_dbase(void);
E void os_remove_nick(NickCore *nc);
E int is_services_root(User *u);
@@ -952,7 +898,6 @@ E void del_session(const char *host);
E void load_exceptions(void);
E void save_exceptions(void);
E void save_rdb_exceptions(void);
E int do_exception(User *u);
E void expire_exceptions(void);
-18
View File
@@ -108,24 +108,6 @@
#define vsnprintf _vsnprintf
#endif
#ifdef USE_RDB
# define MAX_SQL_BUF 4096
#endif
#ifdef USE_MYSQL
# define MYSQL_WARNING 2
# define MYSQL_ERROR 4
# define MYSQL_DEFAULT_PORT 3306
#ifdef MYSQL_HEADER_PREFIX
# include <mysql/mysql.h>
# include <mysql/errmsg.h>
#else
# define NO_CLIENT_LONG_LONG
# include <mysql.h>
# include <errmsg.h>
#endif
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
-6
View File
@@ -120,12 +120,6 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* "Use Mysql" */
#undef USE_MYSQL
/* "Use RDB" */
#undef USE_RDB
/* Define to `short' if <sys/types.h> does not define. */
#undef int16_t
+1 -5
View File
@@ -54,11 +54,7 @@ var installerQuestions = [
f.WriteLine("MYSQL_LIB_PATH=/LIBPATH:$(MYSQL_LIB)");
f.WriteLine("BASE_CFLAGS=$(BASE_CFLAGS) /I $(MYSQL_INC)");
f.WriteLine("MYSQL_INC_PATH=/I $(MYSQL_INC)");
f.WriteLine("RDB_C=rdb.c");
f.WriteLine("RDB_O=rdb.obj");
f.WriteLine("MYSQL_C=mysql.c");
f.WriteLine("MYSQL_O=mysql.obj");
f.WriteLine("BASE_CFLAGS=/D USE_MYSQL /D USE_RDB $(BASE_CFLAGS) /D HAVE_MYSQL_MYSQL_H");
f.WriteLine("BASE_CFLAGS=/D $(BASE_CFLAGS)");
f.WriteLine("MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) /DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib");
f.WriteLine("LIBS=$(LIBS) libmysql.lib zlib.lib");
}
+1 -6
View File
@@ -64,12 +64,7 @@ MYSQL_LIB_PATH=/LIBPATH:$(MYSQL_LIB)
BASE_CFLAGS=$(BASE_CFLAGS) /I $(MYSQL_INC)
MYSQL_INC_PATH=/I $(MYSQL_INC)
!ENDIF
RDB_C=rdb.c
RDB_O=rdb.obj
MYSQL_C=mysql.c
MYSQL_O=mysql.obj
BASE_CFLAGS=/D USE_MYSQL /D USE_RDB $(BASE_CFLAGS) /D HAVE_MYSQL_MYSQL_H
BASE_CFLAGS=$(BASE_CFLAGS)
MYPASQL_BUILD=$(CC) /LD $(MYSQL_INC_PATH) src\mypasql.c /link $(MYSQL_LIB_PATH) $(LFLAGS) \
/DEF:src\mypasql.def libmysql.lib zlib.lib ws2_32.lib advapi32.lib /NODEFAULTLIB:LIBCMTD.lib
+5 -11
View File
@@ -1,15 +1,11 @@
MYSQL_OBJ = $(MYSQL:.c=.o)
RDB_OBJ = $(RDB:.c=.o)
OBJS = actions.o base64.o bots.o botserv.o channels.o chanserv.o commands.o compat.o \
config.o datafiles.o encrypt.o events.o hashcomp.o helpserv.o hostserv.o init.o ircd.o language.o log.o mail.o main.o \
memory.o memoserv.o messages.o misc.o modules.o news.o nickserv.o operserv.o \
process.o send.o servers.o sessions.o slist.o sockutil.o timeout.o users.o \
$(RDB_OBJ) $(MYSQL_OBJ)
process.o send.o servers.o sessions.o slist.o sockutil.o timeout.o users.o
SRCS = actions.c base64.c bots.cpp botserv.c channels.c chanserv.c commands.c compat.c \
config.c datafiles.c encrypt.c events.c hashcomp.c helpserv.c hostserv.c init.c ircd.c language.c log.c mail.c main.c \
config.c datafiles.c encrypt.c events.c hashcomp.cpp helpserv.c hostserv.c init.c ircd.c language.c log.c mail.c main.c \
memory.c memoserv.c messages.c misc.c modules.c news.c nickserv.c operserv.c \
process.c send.c servers.c sessions.c s sockutil.c timeout.c users.c \
$(RDB) $(MYSQL)
process.c send.c servers.c sessions.c s sockutil.c timeout.c users.c
INCLUDES = ../include/commands.h ../include/defs.h ../include/language.h \
../include/pseudo.h ../include/sysconf.h ../include/config.h \
@@ -21,8 +17,8 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' 'MYSQL=${MYSQL}'\
'RDB=${RDB}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
.c.o:
@../run-cc.pl $(CC) $(CFLAGS) -I../include/ -c $<
@@ -76,8 +72,6 @@ sockutil.o: sockutil.c $(INCLUDES)
timeout.o: timeout.c $(INCLUDES)
users.o: users.c $(INCLUDES)
vsnprintf.o: vsnprintf.c $(INCLUDES)
mysql.o: mysql.c $(INCLUDES)
rdb.o: rdb.c $(INCLUDES)
mod_version: mod_version.c $(INCLUDES)
@../run-cc.pl $(CC) $(CDEFS) $(CFLAGS) $(MODULEFLAGS) -I../include/ -c mod_version.c
-34
View File
@@ -531,40 +531,6 @@ void save_bs_dbase(void)
/*************************************************************************/
void save_bs_rdb_dbase(void)
{
#ifdef USE_RDB
int i;
BotInfo *bi;
if (!rdb_open())
return;
if (rdb_tag_table("anope_bs_core") == 0) {
alog("Unable to tag table 'anope_bs_core' - BotServ RDB save failed.");
rdb_close();
return;
}
for (i = 0; i < 256; i++) {
for (bi = botlists[i]; bi; bi = bi->next) {
if (rdb_save_bs_core(bi) == 0) {
alog("Unable to save BotInfo for %s - BotServ RDB save failed.", bi->nick);
rdb_close();
return;
}
}
}
if (rdb_clean_table("anope_bs_core") == 0)
alog("Unable to clean table 'anope_bs_core' - BotServ RDB save failed.");
rdb_close();
#endif
}
/*************************************************************************/
/* Inserts a bot in the bot list. I can't be much explicit mh? */
void insert_bot(BotInfo * bi)
-94
View File
@@ -756,100 +756,6 @@ void save_cs_dbase(void)
/*************************************************************************/
void save_cs_rdb_dbase(void)
{
#ifdef USE_RDB
int i;
ChannelInfo *ci;
if (!rdb_open())
return;
if (rdb_tag_table("anope_cs_info") == 0) {
alog("Unable to tag table 'anope_cs_info' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_cs_access") == 0) {
alog("Unable to tag table 'anope_cs_access' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_cs_levels") == 0) {
alog("Unable to tag table 'anope_cs_levels' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_cs_akicks") == 0) {
alog("Unable to tag table 'anope_cs_akicks' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_cs_badwords") == 0) {
alog("Unable to tag table 'anope_cs_badwords' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_cs_ttb") == 0) {
alog("Unable to tag table 'anope_cs_ttb' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table_where("anope_ms_info", "serv='CHAN'") == 0) {
alog("Unable to tag table 'anope_ms_info' - ChanServ RDB save failed.");
rdb_close();
return;
}
for (i = 0; i < 256; i++) {
for (ci = chanlists[i]; ci; ci = ci->next) {
if (rdb_save_cs_info(ci) == 0) {
alog("Unable to save ChanInfo for %s - ChanServ RDB save failed.", ci->name);
rdb_close();
return;
}
} /* for (chanlists[i]) */
} /* for (i) */
if (rdb_clean_table("anope_cs_info") == 0) {
alog("Unable to clean table 'anope_cs_info' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_cs_access") == 0) {
alog("Unable to clean table 'anope_cs_access' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_cs_levels") == 0) {
alog("Unable to clean table 'anope_cs_levels' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_cs_akicks") == 0) {
alog("Unable to clean table 'anope_cs_akicks' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_cs_badwords") == 0) {
alog("Unable to clean table 'anope_cs_badwords' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_cs_ttb") == 0) {
alog("Unable to clean table 'anope_cs_ttb' - ChanServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table_where("anope_ms_info", "serv='CHAN'") == 0)
alog("Unable to clean table 'anope_ms_info' - ChanServ RDB save failed.");
rdb_close();
#endif
}
/*************************************************************************/
/* Check the current modes on a channel; if they conflict with a mode lock,
* fix them.
*
-2
View File
@@ -277,7 +277,6 @@ char *MysqlSecure;
char *MysqlSock;
int MysqlRetries = 0;
int MysqlRetryGap = 0;
int UseRDB = 0;
int DefConLevel;
static std::string DefCon1;
@@ -1316,7 +1315,6 @@ Directive directives[] = {
{"MysqlSock", {{PARAM_STRING, PARAM_RELOAD, &MysqlSock}}},
{"MysqlRetries", {{PARAM_POSINT, PARAM_RELOAD, &MysqlRetries}}},
{"MysqlRetryGap", {{PARAM_POSINT, PARAM_RELOAD, &MysqlRetryGap}}},
{"UseRDB", {{PARAM_SET, PARAM_RELOAD, &UseRDB}}},
{"ModuleAutoload", {{PARAM_STRING, PARAM_RELOAD, &Modules}}},
{"ModuleDelayedAutoload",
{{PARAM_STRING, PARAM_RELOAD, &ModulesDelayed}}},
-10
View File
@@ -213,16 +213,6 @@ int do_group(User * u)
u->na = na;
na->u = u;
#ifdef USE_RDB
/* Is this really needed? Since this is a new alias it will get
* its unique id on the next update, since it was previously
* deleted by delnick. Must observe...
*/
if (rdb_open()) {
rdb_save_ns_alias(na);
rdb_close();
}
#endif
send_event(EVENT_GROUP, 1, u->nick);
alog("%s: %s!%s@%s makes %s join group of %s (%s) (e-mail: %s)", s_NickServ, u->nick, u->username, u->host, u->nick, target->nick, target->nc->display, (target->nc->email ? target->nc->email : "none"));
notice_lang(s_NickServ, u, NICK_GROUP_JOINED, target->nick);
-48
View File
@@ -314,28 +314,11 @@ char *getvIdent(char *nick)
/*************************************************************************/
void delHostCore(char *nick)
{
#ifdef USE_RDB
static char clause[128];
char *q_nick;
#endif
HostCore *tmp;
bool found = false;
tmp = findHostCore(head, nick, &found);
if (found) {
head = deleteHostCore(head, tmp);
#ifdef USE_RDB
/* Reflect this change in the database right away. */
if (rdb_open()) {
q_nick = rdb_quote(nick);
snprintf(clause, sizeof(clause), "nick='%s'", q_nick);
if (rdb_scrub_table("anope_hs_core", clause) == 0)
alog("Unable to scrub table 'anope_hs_core' - HostServ RDB update failed.");
rdb_close();
free(q_nick);
}
#endif
}
}
@@ -497,37 +480,6 @@ void save_hs_dbase(void)
#undef SAFE
void save_hs_rdb_dbase(void)
{
#ifdef USE_RDB
HostCore *current;
if (!rdb_open())
return;
if (rdb_tag_table("anope_hs_core") == 0) {
alog("Unable to tag table 'anope_hs_core' - HostServ RDB save failed.");
rdb_close();
return;
}
current = head;
while (current != NULL) {
if (rdb_save_hs_core(current) == 0) {
alog("Unable to save HostCore for %s - HostServ RDB save failed.", current->nick);
rdb_close();
return;
}
current = current->next;
}
if (rdb_clean_table("anope_hs_core") == 0)
alog("Unable to clean table 'anope_hs_core' - HostServ RDB save failed.");
rdb_close();
#endif
}
/*************************************************************************/
/* End of Load/Save Functions */
/*************************************************************************/
+41 -75
View File
@@ -528,20 +528,6 @@ int init_secondary(int ac, char **av)
hostserv_init();
helpserv_init();
#ifdef USE_RDB
if (!rdb_init()) {
if (UseRDB) {
UseRDB = 0;
alog("Error: Disabling UseRDB due to errors with SQL");
}
} else {
if (MysqlSecure && UseRDB) {
UseRDB = 0;
alog("Error: MySQL password are encrypted using method in MysqlSecure disabling UseRDB");
}
}
#endif
/* load any custom modules */
modules_init();
@@ -550,56 +536,47 @@ int init_secondary(int ac, char **av)
add_entropy_userkeys();
/* Load up databases */
#ifdef USE_RDB
if (UseRDB)
rdb_load_dbases();
/* Need a better way to handle this -dane */
if (!UseRDB) {
#endif
load_ns_dbase();
if (debug)
alog("debug: Loaded %s database (1/%d)", s_NickServ,
(PreNickDBName ? 8 : 7));
if (s_HostServ) {
load_hs_dbase();
if (debug)
alog("debug: Loaded %s database (2/%d)", s_HostServ,
(PreNickDBName ? 8 : 7));
} else if (debug) {
alog("debug: HostServ database (2/%d) not loaded because HostServ is disabled", (PreNickDBName ? 8 : 7));
}
if (s_BotServ) {
load_bs_dbase();
if (debug)
alog("debug: Loaded %s database (3/%d)", s_BotServ,
(PreNickDBName ? 8 : 7));
} else if (debug) {
alog("debug: BotServ database (3/%d) not loaded because BotServ is disabled", (PreNickDBName ? 8 : 7));
}
load_cs_dbase();
if (debug)
alog("debug: Loaded %s database (4/%d)", s_ChanServ,
(PreNickDBName ? 8 : 7));
load_os_dbase();
if (debug)
alog("debug: Loaded %s database (5/%d)", s_OperServ,
(PreNickDBName ? 8 : 7));
load_news();
if (debug)
alog("debug: Loaded news database (6/%d)",
(PreNickDBName ? 8 : 7));
load_exceptions();
if (debug)
alog("debug: Loaded exception database (7/%d)",
(PreNickDBName ? 8 : 7));
if (PreNickDBName) {
load_ns_req_db();
if (debug)
alog("debug: Loaded PreNick database (8/8)");
}
#ifdef USE_RDB
}
#endif
load_ns_dbase();
if (debug)
alog("debug: Loaded %s database (1/%d)", s_NickServ,
(PreNickDBName ? 8 : 7));
if (s_HostServ) {
load_hs_dbase();
if (debug)
alog("debug: Loaded %s database (2/%d)", s_HostServ,
(PreNickDBName ? 8 : 7));
} else if (debug) {
alog("debug: HostServ database (2/%d) not loaded because HostServ is disabled", (PreNickDBName ? 8 : 7));
}
if (s_BotServ) {
load_bs_dbase();
if (debug)
alog("debug: Loaded %s database (3/%d)", s_BotServ,
(PreNickDBName ? 8 : 7));
} else if (debug) {
alog("debug: BotServ database (3/%d) not loaded because BotServ is disabled", (PreNickDBName ? 8 : 7));
}
load_cs_dbase();
if (debug)
alog("debug: Loaded %s database (4/%d)", s_ChanServ,
(PreNickDBName ? 8 : 7));
load_os_dbase();
if (debug)
alog("debug: Loaded %s database (5/%d)", s_OperServ,
(PreNickDBName ? 8 : 7));
load_news();
if (debug)
alog("debug: Loaded news database (6/%d)",
(PreNickDBName ? 8 : 7));
load_exceptions();
if (debug)
alog("debug: Loaded exception database (7/%d)",
(PreNickDBName ? 8 : 7));
if (PreNickDBName) {
load_ns_req_db();
if (debug)
alog("debug: Loaded PreNick database (8/8)");
}
alog("Databases loaded");
@@ -626,19 +603,8 @@ int init_secondary(int ac, char **av)
}
/* Save the databases back to file/mysql to reflect any changes */
#ifdef USE_RDB
if (!UseRDB) { /* Only save if we are not using remote databases
* to avoid floods. As a side effects our nice
* FFF databases won't get overwritten if the
* mysql db is broken (empty etc.) */
#endif
alog("Info: Reflecting database records.");
save_databases();
#ifdef USE_RDB
} else {
alog("Info: Not reflecting database records.");
}
#endif
send_event(EVENT_CONNECT, 1, EVENT_START);
/* Connect to the remote server */
-59
View File
@@ -49,10 +49,6 @@ int protocoldebug = 0; /* -protocoldebug */
char *binary_dir; /* Used to store base path for win32 restart */
#endif
#ifdef USE_RDB
int do_mysql = 0; /* use mysql ? */
#endif
/* Set to 1 if we are to quit */
int quitting = 0;
@@ -165,61 +161,6 @@ void save_databases(void)
save_news();
waiting = -18;
save_exceptions();
#ifdef USE_RDB
if (do_mysql) {
if (debug)
alog("debug: Saving RDB databases");
waiting = -10;
waiting = -11;
save_ns_rdb_dbase();
/* We send these PONG's when we're not syncing to avoid timeouts.
* If we send them during the sync, we fuck something up there and
* break the syncing process, resulting in lost (literally lost)
* data. -GD
* This used is_sync(serv_uplink) to check for sync states. There's
* only a minor error with this: serv_uplink doesn't exist during
* the first save. So now we check for serv_uplink only; if it
* exists we're safe. -GD
*/
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
waiting = -12;
save_cs_rdb_dbase();
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
if (PreNickDBName) {
save_ns_req_rdb_dbase();
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
waiting = -13;
}
if (s_BotServ) {
waiting = -14;
save_bs_rdb_dbase();
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
}
if (s_HostServ) {
waiting = -15;
save_hs_rdb_dbase();
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
}
waiting = -16;
save_os_rdb_dbase();
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
waiting = -17;
save_rdb_news();
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
waiting = -18;
save_rdb_exceptions();
if (serv_uplink)
ircdproto->SendPong(ServerName, ServerName);
}
#endif
waiting = -20;
send_event(EVENT_DB_SAVING, 1, EVENT_STOP);
}
+2 -2
View File
@@ -22,13 +22,13 @@ OBJS = actions.obj base64.obj bots.obj botserv.obj channels.obj chanserv.obj co
init.obj ircd.obj language.obj list.obj log.obj mail.obj main.obj memory.obj \
memoserv.obj messages.obj misc.obj modules.obj mod_version.obj news.obj nickserv.obj operserv.obj \
process.obj send.obj servers.obj sessions.obj slist.obj sockutil.obj \
timeout.obj users.obj $(RDB_O) $(MYSQL_O)
timeout.obj users.obj
SRCS = actions.c base64.c botserv.c bots.cpp channels.c chanserv.c commands.c compat.c \
config.c datafiles.c encrypt.c events.c helpserv.c hostserv.c init.c ircd.c \
language.c list.c log.c mail.c main.c memory.c memoserv.c messages.c misc.c \
modules.c mod_version.c news.c nickserv.c operserv.c process.c send.c servers.obj sessions.c \
slist.c sockutil.c timeout.c users.c $(RDB_C) $(MYSQL_C)
slist.c sockutil.c timeout.c users.c
###########################################################################
-122
View File
@@ -1,122 +0,0 @@
#include <winsock.h>
#include <stdio.h>
#include <mysql.h>
MYSQL *mysql;
MYSQL_RES *result = NULL;
MYSQL_ROW row;
int __stdcall mysql_Connect(char *server, char *user, char *pass)
{
mysql = mysql_init(NULL);
return (int) mysql_real_connect(mysql, server, user, pass, NULL, 0,
NULL, 0);
}
int __stdcall mysql_SelectDb(char *db)
{
return (int) mysql_select_db(mysql, db);
}
const char *__stdcall mysql_Error()
{
return mysql_error(mysql);
}
int __stdcall mysql_Query(char *query)
{
if (result) {
mysql_free_result(result);
result = NULL;
}
return (int) mysql_real_query(mysql, query, strlen(query));
}
int __stdcall mysql_NumRows()
{
if (!result)
result = mysql_store_result(mysql);
return mysql_num_rows(result);
}
char *strip(char *str)
{
char *c;
if ((c = strrchr(str, '\n')))
*c = 0;
if ((c = strrchr(str, '\r')))
*c = 0;
return str;
}
void add_line(char **buf, char *line)
{
int oldlen;
char *tmp;
if (*buf != NULL) {
oldlen = strlen(*buf);
tmp = malloc(oldlen + 1);
strcpy(tmp, *buf);
*buf = realloc(*buf, oldlen + strlen(line) + 1);
strcpy(*buf, tmp);
strcat(*buf, line);
free(tmp);
} else
*buf = strdup(line);
}
int __stdcall mysql_LoadFromFile(char *file)
{
FILE *fd = fopen(file, "r");
char line[1024];
char *query = NULL;
if (!fd)
return 0;
while (fgets(line, 1024, fd)) {
int len;
strip(line);
len = strlen(line);
if (!*line || (*line == '-' && *(line + 1) == '-'))
continue;
else if (line[len - 1] == ';') { /* End of a query */
line[len - 1] = 0;
add_line(&query, line);
if (mysql_real_query(mysql, query, strlen(query))) {
free(query);
return 0;
}
free(query);
query = NULL;
}
else
add_line(&query, line);
}
return 1;
}
int __stdcall mysql_NumFields()
{
if (!result)
result = mysql_store_result(mysql);
return mysql_num_fields(result);
}
int __stdcall mysql_FetchRow()
{
if (!result)
result = mysql_store_result(mysql);
row = mysql_fetch_row(result);
return (int) row;
}
char *__stdcall mysql_FetchField(int i)
{
if (i >= mysql_num_fields(result))
return NULL;
else
return row[i];
}
-1890
View File
File diff suppressed because it is too large Load Diff
-31
View File
@@ -232,37 +232,6 @@ void save_news()
#undef SAFE
void save_rdb_news()
{
#ifdef USE_RDB
int i;
NewsItem *ni;
if (!rdb_open())
return;
if (rdb_tag_table("anope_os_news") == 0) {
alog("Unable to tag table 'anope_os_news' - News RDB save failed.");
return;
}
for (i = 0; i < nnews; i++) {
ni = &news[i];
if (rdb_save_news(ni) == 0) {
alog("Unable to save NewsItem %d - News RDB save failed.", ni->num);
return;
}
}
if (rdb_clean_table("anope_os_news") == 0) {
alog("Unable to clean table 'anope_os_news' - News RDB save failed.");
return;
}
rdb_close();
#endif
}
/*************************************************************************/
/***************************** News display ******************************/
/*************************************************************************/
-164
View File
@@ -751,113 +751,6 @@ void save_ns_req_dbase(void)
#undef SAFE
void save_ns_rdb_dbase(void)
{
#ifdef USE_RDB
int i;
NickAlias *na;
NickCore *nc;
if (!rdb_open())
return;
if (rdb_tag_table("anope_ns_core") == 0) {
alog("Unable to tag 'anope_ns_core' - NickServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_ns_alias") == 0) {
alog("Unable to tag 'anope_ns_alias' - NickServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_ns_access") == 0) {
alog("Unable to tag 'anope_ns_access' - NickServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table_where("anope_ms_info", "serv='NICK'") == 0) {
alog("Unable to tag 'anope_ms_info' - NickServ RDB save failed.");
rdb_close();
return;
}
for (i = 0; i < 1024; i++) {
for (nc = nclists[i]; nc; nc = nc->next) {
if (rdb_save_ns_core(nc) == 0) {
alog("Unable to save NickCore for '%s' - NickServ RDB save failed.", nc->display);
rdb_close();
return;
}
} /* for (nc) */
} /* for (i) */
for (i = 0; i < 1024; i++) {
for (na = nalists[i]; na; na = na->next) {
if (rdb_save_ns_alias(na) == 0) {
alog("Unable to save NickAlias for '%s' - NickServ RDB save failed.", na->nick);
rdb_close();
return;
}
} /* for (na) */
} /* for (i) */
if (rdb_clean_table("anope_ns_core") == 0) {
alog("Unable to clean table 'anope_ns_core' - NickServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_ns_alias") == 0) {
alog("Unable to clean table 'anope_ns_alias' - NickServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_ns_access") == 0) {
alog("Unable to clean table 'anope_ns_access' - NickServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table_where("anope_ms_info", "serv='NICK'") == 0)
alog("Unable to clean table 'anope_ms_info' - NickServ RDB save failed.");
rdb_close();
#endif
}
void save_ns_req_rdb_dbase(void)
{
#ifdef USE_RDB
int i;
NickRequest *nr;
if (!rdb_open())
return;
if (rdb_tag_table("anope_ns_request") == 0) {
alog("Unable to tag table 'anope_ns_request' - NickServ Request RDB save failed.");
rdb_close();
return;
}
for (i = 0; i < 1024; i++) {
for (nr = nrlists[i]; nr; nr = nr->next) {
if (rdb_save_ns_req(nr) == 0) {
/* Something went wrong - abort saving */
alog("Unable to save NickRequest (nick '%s') - NickServ Request RDB save failed.", nr->nick);
rdb_close();
return;
}
}
}
if (rdb_clean_table("anope_ns_request") == 0)
alog("Unable to clean table 'anope_ns_request' - NickServ Request RDB save failed.");
rdb_close();
#endif
}
/*************************************************************************/
/* Check whether a user is on the access list of the nick they're using If
@@ -1303,19 +1196,6 @@ void change_core_display(NickCore * nc, char *newdisplay)
alog("%s: changing %s nickname group display to %s", s_NickServ,
nc->display, newdisplay);
#ifdef USE_RDB
/* Reflect this change in the database right away. This
* ensures that we know how to deal with this "new" nick
* on the next /OS UPDATE might need it on /NS DROP too...
*/
if (rdb_open()) {
if (rdb_ns_set_display(newdisplay, nc->display) == 0) {
alog("Unable to update display for %s - Nick Display RDB update failed.", nc->display);
}
rdb_close();
}
#endif
/* Remove the core from the list */
if (nc->next)
nc->next->prev = nc->prev;
@@ -1340,10 +1220,6 @@ void change_core_display(NickCore * nc, char *newdisplay)
static int delcore(NickCore * nc)
{
int i;
#ifdef USE_RDB
static char clause[128];
char *q_display;
#endif
/* (Hopefully complete) cleanup */
cs_remove_nick(nc);
os_remove_nick(nc);
@@ -1359,30 +1235,6 @@ static int delcore(NickCore * nc)
/* Log .. */
alog("%s: deleting nickname group %s", s_NickServ, nc->display);
#ifdef USE_RDB
/* Reflect this change in the database right away. */
if (rdb_open()) {
q_display = rdb_quote(nc->display);
snprintf(clause, sizeof(clause), "display='%s'", q_display);
if (rdb_scrub_table("anope_ns_access", clause) == 0)
alog("Unable to scrub table 'anope_ns_access' - RDB update failed.");
else if (rdb_scrub_table("anope_ns_core", clause) == 0)
alog("Unable to scrub table 'anope_ns_core' - RDB update failed.");
else if (rdb_scrub_table("anope_cs_access", clause) == 0)
alog("Unable to scrub table 'anope_cs_access' - RDB update failed.");
else {
/* I'm unsure how to clean up the OS ADMIN/OPER list on the db */
/* I wish the "display" primary key would be the same on all tables */
snprintf(clause, sizeof(clause),
"receiver='%s' AND serv='NICK'", q_display);
if (rdb_scrub_table("anope_ms_info", clause) == 0)
alog("Unable to scrub table 'anope_ms_info' - RDB update failed.");
}
rdb_close();
free(q_display);
}
#endif
/* Now we can safely free it. */
free(nc->display);
@@ -1447,10 +1299,6 @@ int delnickrequest(NickRequest * nr)
int delnick(NickAlias * na)
{
#ifdef USE_RDB
static char clause[128];
char *q_nick;
#endif
/* First thing to do: remove any timeout belonging to the nick we're deleting */
clean_ns_timeouts(na);
@@ -1490,18 +1338,6 @@ int delnick(NickAlias * na)
else
nalists[HASH(na->nick)] = na->next;
#ifdef USE_RDB
/* Reflect this change in the database right away. */
if (rdb_open()) {
q_nick = rdb_quote(na->nick);
snprintf(clause, sizeof(clause), "nick='%s'", q_nick);
if (rdb_scrub_table("anope_ns_alias", clause) == 0)
alog("Unable to scrub table 'anope_ns_alias' - RDB update failed");
rdb_close();
free(q_nick);
}
#endif
free(na->nick);
if (na->last_usermask)
free(na->last_usermask);
-65
View File
@@ -497,71 +497,6 @@ void save_os_dbase(void)
/*************************************************************************/
void save_os_rdb_dbase(void)
{
#ifdef USE_RDB
if (!rdb_open())
return;
if (rdb_tag_table("anope_os_akills") == 0) {
alog("Unable to tag table 'anope_os_akills' - OperServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_os_sglines") == 0) {
alog("Unable to tag table 'anope_os_sglines' - OperServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_os_sqlines") == 0) {
alog("Unable to tag table 'anope_os_sqlines' - OperServ RDB save failed.");
rdb_close();
return;
}
if (rdb_tag_table("anope_os_szlines") == 0) {
alog("Unable to tag table 'anope_os_szlines' - OperServ RDB save failed.");
rdb_close();
return;
}
/* We empty anope_os_core as required */
if (rdb_empty_table("anope_os_core") == 0) {
alog("Unable to empty table 'anope_os_core' - OperServ RDB save failed");
rdb_close();
return;
}
if (rdb_save_os_db
(maxusercnt, maxusertime, &akills, &sglines, &sqlines,
&szlines) == 0) {
alog("Unable to save OperServ data - OperServ RDB save failed");
rdb_close();
return;
}
if (rdb_clean_table("anope_os_akills") == 0) {
alog("Unable to clean table 'anope_os_akills' - OperServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_os_sglines") == 0) {
alog("Unable to clean table 'anope_os_sglines' - OperServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_os_sqlines") == 0) {
alog("Unable to clean table 'anope_os_sqlines' - OperServ RDB save failed.");
rdb_close();
return;
}
if (rdb_clean_table("anope_os_szlines") == 0)
alog("Unable to clean table 'anope_os_szlines' - OperServ RDB save failed.");
rdb_close();
#endif
}
/*************************************************************************/
/* Removes the nick structure from OperServ lists. */
void os_remove_nick(NickCore * nc)
-496
View File
@@ -1,496 +0,0 @@
/* RDB functions.
*
* (C) 2003-2008 Anope Team
* Contact us at info@anope.org
*
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
* Based on the original code of Services by Andy Church.
*
* $Id$
*
*/
#include "services.h"
/*************************************************************************/
/* Initialize the current RDB database engine */
int rdb_init()
{
#ifdef USE_MYSQL
return db_mysql_init();
#endif
return 0;
}
/*************************************************************************/
/* Check if RDB can be used to load/save data */
int rdb_open()
{
#ifdef USE_MYSQL
return db_mysql_open(); /* db_mysql_open(); */
#endif
return 0;
}
/*************************************************************************/
/* Strictly spoken this should close the database. However, it's not too
* efficient to close it every time after a write or so, so we just
* pretend we closed it while in reality it's still open.
*/
int rdb_close()
{
#ifdef USE_MYSQL
return 1; /* db_mysql_close(); */
#endif
return 1;
}
/*************************************************************************/
/* Quote the string to be used in inclused for the current RDB database */
char *rdb_quote(char *str)
{
#ifdef USE_MYSQL
return db_mysql_quote(str);
#endif
return sstrdup(str);
}
/*************************************************************************/
/* Tag a table by setting the 'active' field to 0 for all rows. After an
* update, all rows with active still 0 will be deleted; this is done to
* easily delete old entries from the database.
*/
int rdb_tag_table(const char* table)
{
#ifdef USE_MYSQL
return db_mysql_try("UPDATE %s SET active = 0", table);
#endif
return 0;
}
/* Be sure to quote all user input in the clause! */
int rdb_tag_table_where(const char* table, const char* clause)
{
#ifdef USE_MYSQL
return db_mysql_try("UPDATE %s SET active = 0 WHERE %s", table,
clause);
#endif
return 0;
}
/*************************************************************************/
/* Empty an entire database table */
int rdb_empty_table(const char* table)
{
#ifdef USE_MYSQL
return db_mysql_try("TRUNCATE TABLE %s", table);
#endif
return 0;
}
/*************************************************************************/
/* Clean up a table with 'dirty' records (active = 0) */
int rdb_clean_table(const char* table)
{
#ifdef USE_MYSQL
return db_mysql_try("DELETE FROM %s WHERE active = 0", table);
#endif
return 0;
}
/* Be sure to quote user input in the clause! */
int rdb_clean_table_where(const char* table, const char* clause)
{
#ifdef USE_MYSQL
return db_mysql_try("DELETE FROM %s WHERE active = 0 AND (%s)", table,
clause);
#endif
return 0;
}
/*************************************************************************/
/* Delete specific records from a table. The clause is MySQL syntax, and
* should be all quoted up nicely in the calling code.
*/
int rdb_scrub_table(const char* table, const char* clause)
{
#ifdef USE_MYSQL
return db_mysql_try("DELETE FROM %s WHERE %s", table, clause);
#endif
return 0;
}
/*************************************************************************/
/* Execute a direct MySQL query. Do NOT forget to quote all user input!
* NOTE: this ideally shouldn't be used, but that's probably a phase3 utopia
*/
int rdb_direct_query(char *query)
{
#ifdef USE_MYSQL
alog("Direct Query: %s", query);
return db_mysql_query(query);
#endif
return 0;
}
/*************************************************************************/
/* Update the needed tables when someone changes their display.
* The original author didn't even like this (claimed it should be in
* mysql.c), and i do agree muchly.
*/
int rdb_ns_set_display(char *newnick, char *oldnick)
{
int ret = 0;
char *q_newnick;
char *q_oldnick;
q_newnick = rdb_quote(newnick);
q_oldnick = rdb_quote(oldnick);
#ifdef USE_MYSQL
/* Change the display on NS_CORE */
ret =
db_mysql_try
("UPDATE anope_ns_core SET display = '%s' WHERE display = '%s'",
q_newnick, q_oldnick);
/* Change the display on NS_ALIAS for all grouped nicks */
if (ret)
ret =
db_mysql_try
("UPDATE anope_ns_alias SET display='%s' WHERE display='%s'",
q_newnick, q_oldnick);
/* Change the display on ChanServ ACCESS list */
if (ret)
ret =
db_mysql_try
("UPDATE anope_cs_access SET display='%s' WHERE display='%s'",
q_newnick, q_oldnick);
/* Change the display on ChanServ AKICK list */
if (ret)
ret =
db_mysql_try
("UPDATE anope_cs_akicks SET creator='%s' WHERE creator='%s'",
q_newnick, q_oldnick);
/* Change the display on MemoServ sent memos -- is it required? */
if (ret)
ret =
db_mysql_try
("UPDATE anope_ms_info SET sender='%s' WHERE sender='%s'",
q_newnick, q_oldnick);
/* Change the display on MemoServ received memos -- is it required? */
if (ret)
ret =
db_mysql_try
("UPDATE anope_ms_info SET receiver='%s' WHERE receiver='%s'",
q_newnick, q_oldnick);
/* Change the akills set on the person's nick */
if (ret)
ret =
db_mysql_try
("UPDATE anope_cs_akicks SET dmask='%s' WHERE dmask='%s' AND flags & %d",
q_newnick, q_oldnick, AK_ISNICK);
/* Change the display on NickServ ACCESS list */
if (ret)
ret =
db_mysql_try
("UPDATE anope_ns_access SET display='%s' WHERE display='%s'",
q_newnick, q_oldnick);
/* No need to update anope_cs_info here as it is updated when we
* save the database.
*
* anope_hs_core is per nick, not per display; a changed display
* won't change anything there
*/
#endif
free(q_newnick);
free(q_oldnick);
return ret;
}
/*************************************************************************/
int rdb_save_ns_core(NickCore * nc)
{
#ifdef USE_MYSQL
return db_mysql_save_ns_core(nc);
#endif
return 0;
}
/*************************************************************************/
int rdb_save_ns_alias(NickAlias * na)
{
#ifdef USE_MYSQL
return db_mysql_save_ns_alias(na);
#endif
return 0;
}
/*************************************************************************/
int rdb_save_ns_req(NickRequest * nr)
{
#ifdef USE_MYSQL
return db_mysql_save_ns_req(nr);
#endif
return 0;
}
/*************************************************************************/
int rdb_save_cs_info(ChannelInfo * ci)
{
#ifdef USE_MYSQL
return db_mysql_save_cs_info(ci);
#endif
return 0;
}
/*************************************************************************/
int rdb_save_bs_core(BotInfo * bi)
{
#ifdef USE_MYSQL
return db_mysql_save_bs_core(bi);
#endif
return 0;
}
/*************************************************************************/
int rdb_save_hs_core(HostCore * hc)
{
#ifdef USE_MYSQL
return db_mysql_save_hs_core(hc);
#endif
return 0;
}
/*************************************************************************/
int rdb_save_os_db(unsigned int maxucnt, unsigned int maxutime,
SList * ak, SList * sgl, SList * sql, SList * szl)
{
#ifdef USE_MYSQL
return db_mysql_save_os_db(maxusercnt, maxusertime, ak, sgl, sql, szl);
#endif
return 0;
}
/*************************************************************************/
int rdb_save_news(NewsItem * ni)
{
#ifdef USE_MYSQL
return db_mysql_save_news(ni);
#endif
return 0;
}
/*************************************************************************/
int rdb_load_bs_dbase(void)
{
#ifdef USE_MYSQL
return db_mysql_load_bs_dbase();
#endif
return 0;
}
/*************************************************************************/
int rdb_load_hs_dbase(void)
{
#ifdef USE_MYSQL
return db_mysql_load_hs_dbase();
#endif
return 0;
}
/*************************************************************************/
int rdb_load_ns_dbase(void)
{
#ifdef USE_MYSQL
return db_mysql_load_ns_dbase();
#endif
return 0;
}
/*************************************************************************/
int rdb_load_news(void)
{
#ifdef USE_MYSQL
return db_mysql_load_news();
#endif
return 0;
}
/*************************************************************************/
int rdb_load_exceptions(void)
{
#ifdef USE_MYSQL
return db_mysql_load_exceptions();
#endif
return 0;
}
/*************************************************************************/
int rdb_load_cs_dbase(void)
{
#ifdef USE_MYSQL
return db_mysql_load_cs_dbase();
#endif
return 0;
}
/*************************************************************************/
int rdb_load_os_dbase(void)
{
#ifdef USE_MYSQL
return db_mysql_load_os_dbase();
#endif
return 0;
}
/*************************************************************************/
int rdb_load_ns_req_dbase(void)
{
#ifdef USE_MYSQL
return db_mysql_load_ns_req_dbase();
#endif
return 0;
}
/*************************************************************************/
#define LOAD_DBASE(num, name, func) {\
if (!func) {\
alog("RDB unable to load %s database (%d/8) !!!", name, num);\
return 0;\
}\
if (debug)\
alog("debug: RDB Loaded %s DataBase (%d/8)", name, num);\
}
int rdb_load_dbases(void)
{
LOAD_DBASE(1, "NickServ", rdb_load_ns_dbase());
if (s_HostServ) {
LOAD_DBASE(2, "HostServ", rdb_load_hs_dbase());
}
if (s_BotServ) {
LOAD_DBASE(3, "BotServ", rdb_load_bs_dbase());
}
LOAD_DBASE(4, "ChanServ", rdb_load_cs_dbase());
LOAD_DBASE(5, "OperServ", rdb_load_os_dbase());
LOAD_DBASE(6, "News", rdb_load_news());
LOAD_DBASE(7, "Exception", rdb_load_exceptions());
if (PreNickDBName) {
LOAD_DBASE(8, "PreNick", rdb_load_ns_req_dbase());
} else if (debug) {
alog("debug: RDB No need to load PreNickDB (8/8)");
}
alog("RDB: All DataBases loaded.");
return 0;
}
/*************************************************************************/
int rdb_save_exceptions(Exception * e)
{
#ifdef USE_MYSQL
return db_mysql_save_exceptions(e);
#endif
return 0;
}
/* EOF */
-29
View File
@@ -474,35 +474,6 @@ void save_exceptions()
#undef SAFE
/*************************************************************************/
void save_rdb_exceptions()
{
#ifdef USE_RDB
int i;
Exception *e;
if (!rdb_open())
return;
if (rdb_tag_table("anope_os_exceptions") == 0) {
alog("Unable to tag table 'anope_os_exceptions' - Exception RDB save failed.");
return;
}
for (i = 0; i < nexceptions; i++) {
e = &exceptions[i];
if (rdb_save_exceptions(e) == 0) {
alog("Unable to save Exception '%s' - Exception RDB save failed.", e->mask);
return;
}
}
if (rdb_clean_table("anope_os_exceptions") == 0) {
alog("Unable to clean table 'anope_os_exceptions' - Exception RDB save failed.");
return;
}
rdb_close();
#endif
}
/*************************************************************************/
/************************ Exception Manipulation *************************/
/*************************************************************************/