mirror of
https://github.com/anope/anope.git
synced 2026-07-05 02:13:13 +02:00
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
This commit is contained in:
parent
fb2191240c
commit
ada71328a9
+7
-9
@@ -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 $<
|
||||
|
||||
+1
-1
@@ -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},
|
||||
|
||||
@@ -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");
|
||||
|
||||
+17
-9
@@ -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;
|
||||
|
||||
+16
@@ -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) {
|
||||
|
||||
+8
-4
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
+4
-6
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user