1
0
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:
trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b
2004-12-19 17:42:17 +00:00
parent fb2191240c
commit ada71328a9
32 changed files with 173 additions and 66 deletions
+7 -9
View File
@@ -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
View File
@@ -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},
+2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}
}
-4
View File
@@ -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
View File
@@ -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);
-2
View File
@@ -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;
-6
View File
@@ -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);
}