aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authormnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-09 17:50:05 +0000
committermnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-09 17:50:05 +0000
commit10e5af4280fb32aa71889678d7e3113fef9b9713 (patch)
treebe88e9b58fef543f0d81c63684f10c38f8c0527c /main
parenta0a46835cadebd72de3b3bfc0b06a779a8e9745a (diff)
don't unload modules that returned AST_MODULE_LOAD_DECLINE when they were loaded
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@275143 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/loader.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/main/loader.c b/main/loader.c
index a79a2cf43..6bd9ed3db 100644
--- a/main/loader.c
+++ b/main/loader.c
@@ -472,7 +472,7 @@ void ast_module_shutdown(void)
continue;
}
AST_LIST_REMOVE_CURRENT(&module_list, entry);
- if (mod->info->unload) {
+ if (mod->flags.running && !mod->flags.declined && mod->info->unload) {
mod->info->unload();
}
AST_LIST_HEAD_DESTROY(&mod->users);
@@ -498,7 +498,7 @@ int ast_unload_resource(const char *resource_name, enum ast_module_unload_mode f
return 0;
}
- if (!(mod->flags.running || mod->flags.declined))
+ if (!mod->flags.running || mod->flags.declined)
error = 1;
if (!mod->lib) {