summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-12-19 17:42:17 +0000
committertrystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-12-19 17:42:17 +0000
commitada71328a984fa145ddb27c8e6f2ca80dbb9524e (patch)
tree8e6d6f3619f88c8a462f98d0b533a1330ffaf152
parentfb2191240c3dc31d2068793357f0b4c2cf870a0c (diff)
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
git-svn-id: svn://svn.anope.org/anope/trunk@489 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@343 5417fbe8-f217-4b02-8779-1006273d7864
-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.