1
0
mirror of https://github.com/anope/anope.git synced 2026-06-28 10:26:37 +02:00

BUILD : 1.7.14 (1124) BUGS : 552 NOTES : Added a way to modules_unload_all() to specify if we should unload the protocol module or not

git-svn-id: svn://svn.anope.org/anope/trunk@1124 31f1291d-b8d6-0310-a050-a5561fc1590b


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@848 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b
2006-08-06 16:32:41 +00:00
parent a1edb7a0c2
commit 11b73a098c
5 changed files with 40 additions and 29 deletions
+2 -1
View File
@@ -7,9 +7,10 @@ Provided by Anope Dev. <dev@anope.org> - 2006
06/22 A Support startup flag. [ #00]
06/21 A Module version check. [ #00]
06/25 A Optional strict privmsg format. [ #00]
07/22 R Removed clone stuff. [ #00]
07/15 A Added BOT_LONG_IDENT for too long idents. [#538]
07/10 A Moved ns_noop into core and assigned an NI_ flag. [#423]
08/06 A Option to modules_unload_all() to say if we should unload proto. [#552]
07/22 R Removed clone stuff. [ #00]
04/08 F Fixed Charybdis support on win32. [#487]
04/08 F Fixed thread stuff on windows. [#488]
04/08 F Fixed SGLine stuff on inspircd (not supported). [#489]
+1 -1
View File
@@ -844,7 +844,7 @@ E char **buildStringList(char *src, int *number);
/**** modules.c ****/
E void modules_core_init(int number, char **list);
E void modules_unload_all(boolean fini); /* Read warnings near function source */
E void modules_unload_all(boolean fini, boolean unload_proto); /* Read warnings near function source */
E void moduleCallBackRun(void);
E void moduleCleanStruct(ModuleData **moduleData);
+9 -5
View File
@@ -225,7 +225,9 @@ static void services_restart(void)
anope_cmd_squit(ServerName, quitmsg);
disconn(servsock);
close_log();
modules_unload_all(true);
/* First don't unload protocol module, then do so */
modules_unload_all(true, false);
modules_unload_all(true, true);
execve(SERVICES_BIN, my_av, my_envp);
if (!readonly) {
open_log();
@@ -278,7 +280,9 @@ static void services_shutdown(void)
}
send_event(EVENT_SHUTDOWN, 1, EVENT_STOP);
disconn(servsock);
modules_unload_all(true); /* Only legitimate use of this function */
/* First don't unload protocol module, then do so */
modules_unload_all(true, false);
modules_unload_all(true, true);
}
/*************************************************************************/
@@ -363,7 +367,7 @@ void sighandler(int signum)
inbuf[448] = 0;
}
wallops(NULL, "PANIC! buffer = %s\r\n", inbuf);
modules_unload_all(false);
modules_unload_all(false, true);
} else if (waiting < 0) {
/* This is static on the off-chance we run low on stack */
static char buf[BUFSIZE];
@@ -440,7 +444,7 @@ void sighandler(int signum)
snprintf(buf, sizeof(buf), "Sending event %s %s",
EVENT_DB_EXPIRE, EVENT_START);
break;
break;
case -31:
@@ -462,7 +466,7 @@ void sighandler(int signum)
signum == SIGUSR1 ||
#endif
!(quitmsg = calloc(BUFSIZE, 1))) {
quitmsg = "Out of memory!";
quitmsg = "Out of memory!";
} else {
#if HAVE_STRSIGNAL
snprintf(quitmsg, BUFSIZE, "Services terminating: %s",
+23 -21
View File
@@ -234,7 +234,7 @@ void modules_delayed_init(void)
* And if that isn't enough discouragement, you'll wake up with your
* both legs broken tomorrow ;) -GD
*/
void modules_unload_all(boolean fini)
void modules_unload_all(boolean fini, boolean unload_proto)
{
#ifdef USE_MODULES
int idx;
@@ -245,26 +245,28 @@ void modules_unload_all(boolean fini)
mh = MODULE_HASH[idx];
while (mh) {
next = mh->next;
mod_current_module = mh->m;
if(fini) {
func = (void (*)(void))ano_modsym(mh->m->handle, "AnopeFini");
if (func) {
mod_current_module_name = mh->m->name;
func(); /* exec AnopeFini */
mod_current_module_name = NULL;
}
if (prepForUnload(mh->m) != MOD_ERR_OK) {
mh = next;
continue;
}
if ((ano_modclose(mh->m->handle)) != 0)
alog(ano_moderr());
else
delModule(mh->m);
} else {
delModule(mh->m);
if (unload_proto || (mh->m->type != PROTOCOL)) {
mod_current_module = mh->m;
if(fini) {
func = (void (*)(void))ano_modsym(mh->m->handle, "AnopeFini");
if (func) {
mod_current_module_name = mh->m->name;
func(); /* exec AnopeFini */
mod_current_module_name = NULL;
}
if (prepForUnload(mh->m) != MOD_ERR_OK) {
mh = next;
continue;
}
if ((ano_modclose(mh->m->handle)) != 0)
alog(ano_moderr());
else
delModule(mh->m);
} else {
delModule(mh->m);
}
}
mh = next;
}
+5 -1
View File
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="14"
VERSION_EXTRA=""
VERSION_BUILD="1123"
VERSION_BUILD="1124"
# $Log$
#
# BUILD : 1.7.14 (1124)
# BUGS : 552
# NOTES : Added a way to modules_unload_all() to specify if we should unload the protocol module or not
#
# BUILD : 1.7.14 (1123)
# BUGS : 563
# NOTES : Fixed UseTSMode thing for ratbox; TS6 for ratbox should work now