From: Matthew Nicholson Date: Fri, 9 Jul 2010 17:50:05 +0000 (+0000) Subject: don't unload modules that returned AST_MODULE_LOAD_DECLINE when they were loaded X-Git-Tag: 1.4.35-rc1~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4654483d6b3b121ee5bc8e2306c1af3cfca58983;p=thirdparty%2Fasterisk.git don't unload modules that returned AST_MODULE_LOAD_DECLINE when they were loaded git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@275143 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/loader.c b/main/loader.c index a79a2cf43b..6bd9ed3db5 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) {