summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes11
-rw-r--r--Changes.lang1
-rw-r--r--Makefile.in3
-rwxr-xr-xconfigure31
-rw-r--r--configure.in38
-rw-r--r--data/example.conf4
-rw-r--r--data/tables.sql2
-rw-r--r--include/services.h2
-rw-r--r--lang/cat.l2
-rw-r--r--lang/de.l3
-rw-r--r--lang/en_us.l2
-rw-r--r--lang/es.l3
-rw-r--r--lang/fr.l3
-rw-r--r--lang/gr.l3
-rw-r--r--lang/hun.l3
-rw-r--r--lang/it.l3
-rw-r--r--lang/nl.l2
-rw-r--r--lang/pl.l3
-rw-r--r--lang/pt.l3
-rw-r--r--lang/ru.l3
-rw-r--r--lang/tr.l3
-rw-r--r--src/Makefile16
-rw-r--r--src/config.c2
-rw-r--r--src/init.c2
-rw-r--r--src/main.c26
-rw-r--r--src/mysql.c16
-rw-r--r--src/news.c12
-rw-r--r--src/nickserv.c4
-rw-r--r--src/operserv.c10
-rw-r--r--src/servers.c2
-rw-r--r--src/users.c6
-rw-r--r--version.log15
32 files changed, 173 insertions, 66 deletions
diff --git a/Changes b/Changes
index 31c58efc3..2b4752e8b 100644
--- a/Changes
+++ b/Changes
@@ -13,6 +13,14 @@ Provided by Anope Dev. <dev@anope.org> - 2004
11/19 A Added anope_cmd_ctcp() to code API, for sending CTCP messages. [ #00]
11/18 A Unable to use registered nicknames as bot nicks from now on. [ #00]
11/18 A NSAddAccessOnReg to control access list on registration. [ #00]
+12/19 F Segfault if USERDB enabled and tables don't exist [#255]
+12/18 F Now only builds the ircd you selected. [ #00]
+12/17 F In some cases READONLY was not respected, and data was saved. [#244]
+12/17 F Corrected a few mistakes in example.conf. [#251]
+12/17 F Wrong column type in tables.sql for nick alias status fiag. [#248]
+12/17 F listchans and listnicks work under Cygwin. [#247]
+12/17 F NickRegDelay no longer accepts negative values. [#250]
+12/17 F -is44 option not show if converter not built. [#249]
12/11 F Fixed possible crashbug (NULL-free) in nickserv's delcore(). [ #00]
12/09 F Hybrid crash on unsetting registration mode. [ #00]
12/09 F BotServ !seen not recognizing founder. [#167]
@@ -54,6 +62,9 @@ Provided by DrStein <gacevedo@anope.org> - 2004
11/23 F Moving Services Operators to Services Admins and vice-versa. [#230]
11/22 F HelpChan +h mode not being given if status was greater then op. [#223]
+Provided by Jens Hoffrichter <joho@nickstories.de> - 2004
+12/17 F Provides clear message of SUPERADMIN is not enabled. [#246]
+
Anope Version 1.7.6
-------------------
Provided by Anope Dev. <dev@anope.org> - 2004
diff --git a/Changes.lang b/Changes.lang
index 97243393e..26018fa84 100644
--- a/Changes.lang
+++ b/Changes.lang
@@ -15,6 +15,7 @@ Anope Version S V N
OPER_SET_LIST_OPTION_ON
OPER_SET_LIST_OPTION_OFF
OPER_HELP_SET_LIST
+ OPER_SUPER_ADMIN_NOT_ENABLED
*** Mod Strings:
diff --git a/Makefile.in b/Makefile.in
index cf5aa6e1c..73b25df79 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -16,6 +16,7 @@ MYSQL=@MYSQL@
RDB=@RDB@
LDFLAGS=@LDFLAGS@
RUNGROUP=@RUNGROUP@
+IRCDFILE=@IRCDFILE@
all: language headers build modules
strict: language headers strict_build strict_modules
@@ -25,7 +26,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' 'RDB=${RDB}'\
- 'MYSQL=${MYSQL}'
+ 'MYSQL=${MYSQL}' 'IRCDFILE=${IRCDFILE}'
build:
@for i in $(SUBDIRS); do \
diff --git a/configure b/configure
index b53440450..f6b282005 100755
--- a/configure
+++ b/configure
@@ -309,7 +309,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RM CP TOUCH INSTALL CPP EGREP MYSQL RDB MYSQLCLIENT_LDFLAGS MYSQLCLIENT_CFLAGS MYSQLCLIENT_LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS ANOPELIBS RUNGROUP BINDEST DATDEST MODULE_PATH LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RM CP TOUCH INSTALL CPP EGREP MYSQL RDB MYSQLCLIENT_LDFLAGS MYSQLCLIENT_CFLAGS MYSQLCLIENT_LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS ANOPELIBS RUNGROUP BINDEST DATDEST MODULE_PATH IRCDFILE LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -8513,72 +8513,86 @@ fi;
if test "${with_ircd+set}" = set; then
withval="$with_ircd"
- if test "$withval" = "IRC_DREAMFORGE"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define IRC_DREAMFORGE 1
-_ACEOF
-
- elif test "$withval" = "IRC_BAHAMUT"; then
+ if test "$withval" = "IRC_BAHAMUT"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_BAHAMUT 1
_ACEOF
+ IRCDFILE=" bahamut.c "
+
elif test "$withval" = "IRC_UNREAL31"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_UNREAL31 1
_ACEOF
+ IRCDFILE=" unreal31.c "
+
elif test "$withval" = "IRC_ULTIMATE2"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_ULTIMATE2 1
_ACEOF
+ IRCDFILE=" ultimate2.c "
+
elif test "$withval" = "IRC_ULTIMATE3"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_ULTIMATE3 1
_ACEOF
+ IRCDFILE=" ultimate3.c "
+
elif test "$withval" = "IRC_HYBRID"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_HYBRID 1
_ACEOF
+ IRCDFILE=" hybrid.c "
+
elif test "$withval" = "IRC_VIAGRA"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_VIAGRA 1
_ACEOF
+ IRCDFILE=" viagra.c "
+
elif test "$withval" = "IRC_PTLINK"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_PTLINK 1
_ACEOF
+ IRCDFILE=" ptlink.c "
+
elif test "$withval" = "IRC_RAGE2"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_RAGE2 1
_ACEOF
+ IRCDFILE=" rageircd.c "
+
elif test "$withval" = "IRC_UNREAL32"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_UNREAL32 1
_ACEOF
+ IRCDFILE=" unreal32.c "
+
elif test "$withval" = "IRC_SOLID"; then
cat >>confdefs.h <<\_ACEOF
#define IRC_SOLID 1
_ACEOF
+ IRCDFILE=" solidircd.c "
+
fi
@@ -9248,6 +9262,7 @@ s,@RUNGROUP@,$RUNGROUP,;t t
s,@BINDEST@,$BINDEST,;t t
s,@DATDEST@,$DATDEST,;t t
s,@MODULE_PATH@,$MODULE_PATH,;t t
+s,@IRCDFILE@,$IRCDFILE,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
CEOF
diff --git a/configure.in b/configure.in
index f821a414e..448ef60f0 100644
--- a/configure.in
+++ b/configure.in
@@ -193,28 +193,46 @@ AC_SUBST(DATDEST)
AC_SUBST(MODULE_PATH)
AC_ARG_WITH(ircd, [ --with-ircd=ircd Specify the first ircd type], [
- if test "$withval" = "IRC_DREAMFORGE"; then
- AC_DEFINE(IRC_DREAMFORGE,1,"Frist IRCD type")
- elif test "$withval" = "IRC_BAHAMUT"; then
+ if test "$withval" = "IRC_BAHAMUT"; then
AC_DEFINE(IRC_BAHAMUT,1,"First IRCD type")
+ IRCDFILE=" bahamut.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_UNREAL31"; then
- AC_DEFINE(IRC_UNREAL31,1,"First IRCD type")
+ AC_DEFINE(IRC_UNREAL31,1,"First IRCD type")
+ IRCDFILE=" unreal31.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_ULTIMATE2"; then
- AC_DEFINE(IRC_ULTIMATE2,1,"First IRCD type")
+ AC_DEFINE(IRC_ULTIMATE2,1,"First IRCD type")
+ IRCDFILE=" ultimate2.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_ULTIMATE3"; then
- AC_DEFINE(IRC_ULTIMATE3,1,"First IRCD type")
+ AC_DEFINE(IRC_ULTIMATE3,1,"First IRCD type")
+ IRCDFILE=" ultimate3.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_HYBRID"; then
AC_DEFINE(IRC_HYBRID,1,"First IRCD type")
+ IRCDFILE=" hybrid.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_VIAGRA"; then
- AC_DEFINE(IRC_VIAGRA,1,"First IRCD type")
+ AC_DEFINE(IRC_VIAGRA,1,"First IRCD type")
+ IRCDFILE=" viagra.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_PTLINK"; then
AC_DEFINE(IRC_PTLINK,1,"First IRCD type")
+ IRCDFILE=" ptlink.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_RAGE2"; then
- AC_DEFINE(IRC_RAGE2,1,"First IRCD type")
+ AC_DEFINE(IRC_RAGE2,1,"First IRCD type")
+ IRCDFILE=" rageircd.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_UNREAL32"; then
- AC_DEFINE(IRC_UNREAL32,1,"First IRCD type")
+ AC_DEFINE(IRC_UNREAL32,1,"First IRCD type")
+ IRCDFILE=" unreal32.c "
+ AC_SUBST(IRCDFILE)
elif test "$withval" = "IRC_SOLID"; then
- AC_DEFINE(IRC_SOLID,1,"First IRCD type")
+ AC_DEFINE(IRC_SOLID,1,"First IRCD type")
+ IRCDFILE=" solidircd.c "
+ AC_SUBST(IRCDFILE)
fi
])
diff --git a/data/example.conf b/data/example.conf
index 49d751adc..288c694ce 100644
--- a/data/example.conf
+++ b/data/example.conf
@@ -664,7 +664,7 @@ ProxyTestServer "1.2.3.4" 6667
# ProxyExpire <time> [RECOMMENDED]
#
# Sets the length of time before a proxy host cache entry expires, if
-# not used.
+# not used. If this is not set the default time is 2 days.
ProxyExpire 30d
@@ -679,7 +679,7 @@ ProxyExpire 30d
ProxyCacheExpire 1d
-# ProxyAkillReason <reason>
+# ProxyAkillReason <reason> [REQUIRED]
#
# Sets the reason that will be used to AKILL an user from the network
# if a proxy is detected.
diff --git a/data/tables.sql b/data/tables.sql
index db9cbe8c1..342367e26 100644
--- a/data/tables.sql
+++ b/data/tables.sql
@@ -194,7 +194,7 @@ CREATE TABLE anope_ns_alias (
nick varchar(255) NOT NULL default '',
time_registered int(10) unsigned NOT NULL default '0',
last_seen int(10) unsigned NOT NULL default '0',
- status smallint(6) NOT NULL default '0',
+ status int(11) unsigned NOT NULL default '0',
last_usermask text NOT NULL,
last_realname text NOT NULL,
last_quit text NOT NULL,
diff --git a/include/services.h b/include/services.h
index ff69cce0a..ed0f3bbab 100644
--- a/include/services.h
+++ b/include/services.h
@@ -339,7 +339,7 @@ struct memo_ {
};
typedef struct {
- uint16 memocount, memomax;
+ int16 memocount, memomax;
Memo *memos;
} MemoInfo;
diff --git a/lang/cat.l b/lang/cat.l
index b2fdfb105..f841dc288 100644
--- a/lang/cat.l
+++ b/lang/cat.l
@@ -6371,3 +6371,5 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
diff --git a/lang/de.l b/lang/de.l
index 99c553cb1..d8b47a066 100644
--- a/lang/de.l
+++ b/lang/de.l
@@ -6587,4 +6587,5 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE ist auf diesem Netzwerk nicht verfügbar.
-
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin muss in der services.conf eingeschaltet werden
diff --git a/lang/en_us.l b/lang/en_us.l
index 3f6d53e02..bdab2f208 100644
--- a/lang/en_us.l
+++ b/lang/en_us.l
@@ -6111,4 +6111,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
diff --git a/lang/es.l b/lang/es.l
index df6d0e6e5..063ca843f 100644
--- a/lang/es.l
+++ b/lang/es.l
@@ -6362,3 +6362,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Lo siento, OLINE no esta disponible en esta red.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/fr.l b/lang/fr.l
index e8b7e5bae..3b3d176fe 100644
--- a/lang/fr.l
+++ b/lang/fr.l
@@ -6404,3 +6404,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/gr.l b/lang/gr.l
index 95f3a4cfa..54e08ac68 100644
--- a/lang/gr.l
+++ b/lang/gr.l
@@ -6248,3 +6248,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/hun.l b/lang/hun.l
index fa3f7408d..245a4a041 100644
--- a/lang/hun.l
+++ b/lang/hun.l
@@ -6132,3 +6132,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/it.l b/lang/it.l
index 9e7dda875..c49236ea0 100644
--- a/lang/it.l
+++ b/lang/it.l
@@ -6407,3 +6407,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/nl.l b/lang/nl.l
index 7c20b02b9..b3c85d61d 100644
--- a/lang/nl.l
+++ b/lang/nl.l
@@ -6272,4 +6272,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is niet beschikbaar op dit netwerk.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
diff --git a/lang/pl.l b/lang/pl.l
index 86cbc7608..d9ccc911b 100644
--- a/lang/pl.l
+++ b/lang/pl.l
@@ -6685,3 +6685,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/pt.l b/lang/pt.l
index 7f2ccbf82..4e96be0b5 100644
--- a/lang/pt.l
+++ b/lang/pt.l
@@ -6005,3 +6005,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/ru.l b/lang/ru.l
index d65464738..913af197e 100644
--- a/lang/ru.l
+++ b/lang/ru.l
@@ -6150,3 +6150,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/lang/tr.l b/lang/tr.l
index d544cfe5c..82c00d081 100644
--- a/lang/tr.l
+++ b/lang/tr.l
@@ -6181,3 +6181,6 @@ OPER_SVSO_UNSUPPORTED
OPER_UMODE_UNSUPPORTED
Sorry, UMODE is not available on this network.
+OPER_SUPER_ADMIN_NOT_ENABLED
+ SuperAdmin setting not enabled in services.conf
+
diff --git a/src/Makefile b/src/Makefile
index 54929bf50..46d796985 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,20 +1,18 @@
MYSQL_OBJ = $(MYSQL:.c=.o)
RDB_OBJ = $(RDB:.c=.o)
+IRCD_OBJ = $(IRCDFILE:.c=.o)
OBJS = actions.o base64.o botserv.o channels.o chanserv.o commands.o compat.o converter.o \
config.o datafiles.o encrypt.o helpserv.o hostserv.o init.o language.o list.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 proxy.o send.o servers.o sessions.o slist.o sockutil.o \
- timeout.o users.o dreamforge.o bahamut.o unreal31.o ultimate2.o ultimate3.o \
- hybrid.o ptlink.o viagra.o rageircd.o unreal32.o solidircd.o \
- $(VSNPRINTF_O) $(RDB_OBJ) $(MYSQL_OBJ)
+ memory.o memoserv.o messages.o misc.o modules.o news.o nickserv.o operserv.o \
+ process.o proxy.o send.o servers.o sessions.o slist.o sockutil.o \
+ timeout.o users.o \
+ $(VSNPRINTF_O) $(RDB_OBJ) $(MYSQL_OBJ) $(IRCD_OBJ)
SRCS = actions.c base64.c botserv.c channels.c chanserv.c commands.c compat.c converter.c \
config.c datafiles.c encrypt.c helpserv.c hostserv.c init.c language.c list.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 proxy.c send.c servers.c sessions.c slist.c sockutil.c \
- dreamforge.c bahamut.c unreal31.c ultimate2.c ultimate3.c \
- hybrid.c ptlink.c viagra.c rageircd.c unreal32.c solidircd.c \
timeout.c users.c \
- $(VSNPRINTF_C) $(RDB) $(MYSQL)
+ $(VSNPRINTF_C) $(RDB) $(MYSQL) $(IRCDFILE)
INCLUDES = ../include/commands.h ../include/defs.h ../include/language.h \
../include/pseudo.h ../include/sysconf.h ../include/config.h \
@@ -31,7 +29,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' 'MYSQL=${MYSQL}'\
- 'RDB=${RDB}'
+ 'RDB=${RDB}' 'IRCDFILE=${IRCDFILE}'
.c.o:
$(CC) $(CFLAGS) -I../include/ -c $<
diff --git a/src/config.c b/src/config.c
index 5e1f69591..5a68e0d99 100644
--- a/src/config.c
+++ b/src/config.c
@@ -526,7 +526,7 @@ Directive directives[] = {
{"Numeric", {{PARAM_POSINT, PARAM_RELOAD, &Numeric}}},
{"PreNickServDB", {{PARAM_STRING, PARAM_RELOAD, &PreNickDBName}}},
{"NSEmailReg", {{PARAM_SET, PARAM_RELOAD, &NSEmailReg}}},
- {"NickRegDelay", {{PARAM_INT, PARAM_RELOAD, &NickRegDelay}}},
+ {"NickRegDelay", {{PARAM_POSINT, PARAM_RELOAD, &NickRegDelay}}},
{"NickServName", {{PARAM_STRING, 0, &s_NickServ},
{PARAM_STRING, 0, &desc_NickServ}}},
{"NickServAlias", {{PARAM_STRING, 0, &s_NickServAlias},
diff --git a/src/init.c b/src/init.c
index f8094bc16..5b4f02536 100644
--- a/src/init.c
+++ b/src/init.c
@@ -350,7 +350,9 @@ static int parse_options(int ac, char **av)
fprintf(stdout, "-forceload -forceload\n");
fprintf(stdout, "-readonly -readonly\n");
fprintf(stdout, "-noexpire -noexpire\n");
+#ifdef IS44_CONVERTER
fprintf(stdout, "-is44 -is44\n");
+#endif
fprintf(stdout, "-version -version\n");
fprintf(stdout, "-help -help\n");
fprintf(stdout, "-log -log logfilename\n");
diff --git a/src/main.c b/src/main.c
index 6dc3b7a62..e4bb9ccf6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -126,9 +126,7 @@ extern void expire_all(void)
waiting = -27;
expire_szlines();
}
-#ifndef STREAMLINED
expire_exceptions();
-#endif
#ifdef USE_THREADS
if (ProxyDetect)
proxy_expire();
@@ -241,8 +239,10 @@ static void services_restart(void)
**/
void do_restart_services(void)
{
- expire_all();
- save_databases();
+ if (!readonly) {
+ expire_all();
+ save_databases();
+ }
services_restart();
exit(1);
}
@@ -446,17 +446,25 @@ int main(int ac, char **av, char **envp)
else
progname = av[0];
- /* Were we run under "listnicks" or "listchans"? Do appropriate stuff
- * if so. */
- if (strcmp(progname, "listnicks") == 0) {
+#ifdef __CYGWIN__
+ if (strcmp(progname, "listnicks.exe") == 0)
+#else
+ if (strcmp(progname, "listnicks") == 0)
+#endif
+ {
do_listnicks(ac, av);
return 0;
- } else if (strcmp(progname, "listchans") == 0) {
+ }
+#ifdef __CYGWIN__
+ else if (strcmp(progname, "listchans.exe") == 0)
+#else
+ else if (strcmp(progname, "listchans") == 0)
+#endif
+ {
do_listchans(ac, av);
return 0;
}
-
/* Initialization stuff. */
if ((i = init(ac, av)) != 0)
return i;
diff --git a/src/mysql.c b/src/mysql.c
index 707515113..c426389e5 100644
--- a/src/mysql.c
+++ b/src/mysql.c
@@ -900,6 +900,7 @@ void db_mysql_load_bs_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
if (mysql_num_rows(mysql_res) == 0) {
@@ -936,6 +937,7 @@ void db_mysql_load_hs_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
if (mysql_num_rows(mysql_res) == 0) {
@@ -970,6 +972,7 @@ void db_mysql_load_news(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
nnews = mysql_num_rows(mysql_res);
@@ -1009,6 +1012,7 @@ void db_mysql_load_exceptions(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
nexceptions = mysql_num_rows(mysql_res);
@@ -1044,6 +1048,7 @@ void db_mysql_load_os_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
if ((mysql_row = mysql_fetch_row(mysql_res))) {
@@ -1065,6 +1070,7 @@ void db_mysql_load_os_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
slist_setcapacity(&akills, akc);
@@ -1089,6 +1095,7 @@ void db_mysql_load_os_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql statement: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
while ((mysql_row = mysql_fetch_row(mysql_res))) {
@@ -1107,6 +1114,7 @@ void db_mysql_load_os_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql statement: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
while ((mysql_row = mysql_fetch_row(mysql_res))) {
@@ -1125,6 +1133,7 @@ void db_mysql_load_os_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql statement: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
while ((mysql_row = mysql_fetch_row(mysql_res))) {
@@ -1143,6 +1152,7 @@ void db_mysql_load_os_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
if (mysql_num_rows(mysql_res) == 0) {
@@ -1183,6 +1193,7 @@ void db_mysql_load_cs_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
if (mysql_num_rows(mysql_res) == 0) {
@@ -1242,6 +1253,7 @@ void db_mysql_load_cs_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
res = mysql_store_result(mysql);
n_levels = mysql_num_rows(res);
@@ -1260,6 +1272,7 @@ void db_mysql_load_cs_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
res = mysql_store_result(mysql);
j = 0;
@@ -1287,6 +1300,7 @@ void db_mysql_load_cs_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
res = mysql_store_result(mysql);
j = 0;
@@ -1415,6 +1429,7 @@ void db_mysql_load_ns_req_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
if (mysql_num_rows(mysql_res) == 0) {
@@ -1451,6 +1466,7 @@ void db_mysql_load_ns_dbase(void)
if (db_mysql_query(sqlcmd)) {
log_perror("Can't create sql query: %s", sqlcmd);
db_mysql_error(MYSQL_WARNING, "query");
+ return;
}
mysql_res = mysql_store_result(mysql);
if (mysql_num_rows(mysql_res) == 0) {
diff --git a/src/news.c b/src/news.c
index 868be1993..af3375c34 100644
--- a/src/news.c
+++ b/src/news.c
@@ -428,13 +428,15 @@ static void do_news_add(User * u, int16 type, int *msgs,
snprintf(buf, sizeof(buf), "%sNEWS", typename);
syntax_error(s_OperServ, u, buf, msgs[MSG_ADD_SYNTAX]);
} else {
+ if (readonly) {
+ notice_lang(s_OperServ, u, READ_ONLY_MODE);
+ return;
+ }
int n = add_newsitem(u, text, type);
if (n < 0)
notice_lang(s_OperServ, u, msgs[MSG_ADD_FULL]);
else
notice_lang(s_OperServ, u, msgs[MSG_ADDED], n);
- if (readonly)
- notice_lang(s_OperServ, u, READ_ONLY_MODE);
}
}
@@ -488,6 +490,10 @@ static void do_news_del(User * u, int16 type, int *msgs,
snprintf(buf, sizeof(buf), "%sNEWS", typename);
syntax_error(s_OperServ, u, buf, msgs[MSG_DEL_SYNTAX]);
} else {
+ if (readonly) {
+ notice_lang(s_OperServ, u, READ_ONLY_MODE);
+ return;
+ }
if (stricmp(text, "ALL") != 0) {
int num = atoi(text);
if (num > 0 && del_newsitem(num, type)) {
@@ -505,8 +511,6 @@ static void do_news_del(User * u, int16 type, int *msgs,
else
notice_lang(s_OperServ, u, msgs[MSG_DEL_NONE]);
}
- if (readonly)
- notice_lang(s_OperServ, u, READ_ONLY_MODE);
}
}
diff --git a/src/nickserv.c b/src/nickserv.c
index 27dfc31ef..d0a53bd72 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -4015,11 +4015,9 @@ static int do_ghost(User * u)
char buf[NICKMAX + 32];
snprintf(buf, sizeof(buf), "GHOST command used by %s",
u->nick);
-#ifndef STREAMLINED
if (LimitSessions) {
del_session(u2->host);
}
-#endif
kill_user(s_NickServ, nick, buf);
notice_lang(s_NickServ, u, NICK_GHOST_KILLED, nick);
} else {
@@ -4037,11 +4035,9 @@ static int do_ghost(User * u)
char buf[NICKMAX + 32];
snprintf(buf, sizeof(buf), "GHOST command used by %s",
u->nick);
-#ifndef STREAMLINED
if (LimitSessions) {
del_session(u2->host);
}
-#endif
kill_user(s_NickServ, nick, buf);
notice_lang(s_NickServ, u, NICK_GHOST_KILLED, nick);
} else {
diff --git a/src/operserv.c b/src/operserv.c
index 247e70704..176eed93b 100644
--- a/src/operserv.c
+++ b/src/operserv.c
@@ -190,10 +190,8 @@ void moduleAddOperServCmds(void) {
c = createCommand("QUIT", do_os_quit, is_services_admin,OPER_HELP_QUIT, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("SHUTDOWN", do_shutdown, is_services_admin,OPER_HELP_SHUTDOWN, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("RESTART", do_restart, is_services_admin,OPER_HELP_RESTART, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
-#ifndef STREAMLINED
c = createCommand("SESSION", do_session, is_services_admin,OPER_HELP_SESSION, -1,-1,-1, -1); addCoreCommand(OPERSERV,c);
c = createCommand("EXCEPTION", do_exception, is_services_admin,OPER_HELP_EXCEPTION, -1,-1,-1, -1); addCoreCommand(OPERSERV,c);
-#endif
c = createCommand("CHANLIST", do_chanlist, is_services_admin,OPER_HELP_CHANLIST, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("USERLIST", do_userlist, is_services_admin,OPER_HELP_USERLIST, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
c = createCommand("CACHE", do_cache, is_services_admin,OPER_HELP_CACHE, -1,-1,-1,-1); addCoreCommand(OPERSERV,c);
@@ -876,7 +874,6 @@ int nick_is_services_oper(NickCore * nc)
void check_clones(User * user)
{
-#ifndef STREAMLINED
int i, clone_count;
long last_time;
@@ -925,7 +922,6 @@ void check_clones(User * user)
kill_user(s_OperServ, user->nick, "Clone kill");
}
}
-#endif /* !STREAMLINED */
}
/*************************************************************************/
@@ -4617,14 +4613,16 @@ static int do_set(User * u)
* Rob
**/
} else if (stricmp(option, "SUPERADMIN") == 0) {
- if (SuperAdmin && (stricmp(setting, "on") == 0)) {
+ if (!SuperAdmin) {
+ notice_lang(s_OperServ, u, OPER_SUPER_ADMIN_NOT_ENABLED);
+ } else if (stricmp(setting, "on") == 0) {
u->isSuperAdmin = 1;
notice_lang(s_OperServ, u, OPER_SUPER_ADMIN_ON);
alog("%s: %s is a SuperAdmin ", s_OperServ, u->nick);
anope_cmd_global(s_OperServ,
getstring2(NULL, OPER_SUPER_ADMIN_WALL_ON),
u->nick);
- } else if (SuperAdmin && (stricmp(setting, "off") == 0)) {
+ } else if (stricmp(setting, "off") == 0) {
u->isSuperAdmin = 0;
notice_lang(s_OperServ, u, OPER_SUPER_ADMIN_OFF);
alog("%s: %s is no longer a SuperAdmin", s_OperServ, u->nick);
diff --git a/src/servers.c b/src/servers.c
index b83dea124..1389d3fd9 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -160,11 +160,9 @@ static void delete_server(Server * serv, const char *quitreason)
na->last_quit =
(quitreason ? sstrdup(quitreason) : NULL);
}
-#ifndef STREAMLINED
if (LimitSessions) {
del_session(u->host);
}
-#endif
delete_user(u);
}
u = unext;
diff --git a/src/users.c b/src/users.c
index e807cb012..1417fd936 100644
--- a/src/users.c
+++ b/src/users.c
@@ -489,11 +489,9 @@ User *do_nick(const char *source, char *nick, char *username, char *host,
if (check_szline(nick, ipbuf))
return NULL;
}
-#ifndef STREAMLINED
/* Now check for session limits */
if (LimitSessions && !add_session(nick, host))
return NULL;
-#endif
/* And finally, for proxy ;) */
#ifdef USE_THREADS
@@ -722,11 +720,9 @@ void do_quit(const char *source, int ac, char **av)
free(na->last_quit);
na->last_quit = *av[0] ? sstrdup(av[0]) : NULL;
}
-#ifndef STREAMLINED
if (LimitSessions) {
del_session(user->host);
}
-#endif
delete_user(user);
}
@@ -760,11 +756,9 @@ void do_kill(char *nick, char *msg)
na->last_quit = *msg ? sstrdup(msg) : NULL;
}
-#ifndef STREAMLINED
if (LimitSessions) {
del_session(user->host);
}
-#endif
delete_user(user);
}
diff --git a/version.log b/version.log
index 0ca1dd083..3d483de33 100644
--- a/version.log
+++ b/version.log
@@ -8,10 +8,23 @@
VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="6"
-VERSION_BUILD="488"
+VERSION_BUILD="489"
# $Log$
#
+# BUILD : 1.7.6 (489)
+# BUGS : 244, 246, 247, 248, 249, 250, 251, 252, 254, 255
+# NOTES : 1. In some cases READONLY was not respected, and data was saved.
+# 2. Corrected a few mistakes in example.conf.
+# 3. Wrong column type in tables.sql for nick alias status fiag.
+# 4. listchans and listnicks work under Cygwin.
+# 5. NickRegDelay no longer accepts negative values.
+# 6. -is44 option not show if converter not built.
+# 7. Removed #ifndef STREAMLINE from the code as its no longer set during build time
+# 8. MS MAX LIMIT was set incorrectly
+# 9. Segfault if USERDB enabled and tables does not exist
+# 10. Provides clear message of SUPERADMIN is not enabled
+#
# BUILD : 1.7.6 (488)
# BUGS : N/A
# NOTES : del_session() warning messages when LimitSessions is disabled.