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:
+2
-4
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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}}},
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
-31
@@ -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
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 */
|
||||
@@ -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 *************************/
|
||||
/*************************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user