1
0
mirror of https://github.com/anope/anope.git synced 2026-07-08 08:03:14 +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
+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;
}