diff options
-rw-r--r-- | Changes | 11 | ||||
-rw-r--r-- | Changes.lang | 1 | ||||
-rw-r--r-- | Makefile.in | 3 | ||||
-rwxr-xr-x | configure | 31 | ||||
-rw-r--r-- | configure.in | 38 | ||||
-rw-r--r-- | data/example.conf | 4 | ||||
-rw-r--r-- | data/tables.sql | 2 | ||||
-rw-r--r-- | include/services.h | 2 | ||||
-rw-r--r-- | lang/cat.l | 2 | ||||
-rw-r--r-- | lang/de.l | 3 | ||||
-rw-r--r-- | lang/en_us.l | 2 | ||||
-rw-r--r-- | lang/es.l | 3 | ||||
-rw-r--r-- | lang/fr.l | 3 | ||||
-rw-r--r-- | lang/gr.l | 3 | ||||
-rw-r--r-- | lang/hun.l | 3 | ||||
-rw-r--r-- | lang/it.l | 3 | ||||
-rw-r--r-- | lang/nl.l | 2 | ||||
-rw-r--r-- | lang/pl.l | 3 | ||||
-rw-r--r-- | lang/pt.l | 3 | ||||
-rw-r--r-- | lang/ru.l | 3 | ||||
-rw-r--r-- | lang/tr.l | 3 | ||||
-rw-r--r-- | src/Makefile | 16 | ||||
-rw-r--r-- | src/config.c | 2 | ||||
-rw-r--r-- | src/init.c | 2 | ||||
-rw-r--r-- | src/main.c | 26 | ||||
-rw-r--r-- | src/mysql.c | 16 | ||||
-rw-r--r-- | src/news.c | 12 | ||||
-rw-r--r-- | src/nickserv.c | 4 | ||||
-rw-r--r-- | src/operserv.c | 10 | ||||
-rw-r--r-- | src/servers.c | 2 | ||||
-rw-r--r-- | src/users.c | 6 | ||||
-rw-r--r-- | version.log | 15 |
32 files changed, 173 insertions, 66 deletions
@@ -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 \ @@ -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 @@ -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 @@ -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 + @@ -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 + @@ -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 + @@ -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 + @@ -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 @@ -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 + @@ -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 + @@ -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 + @@ -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. |