diff --git a/res/res_curl.c b/res/res_curl.c index 08e6aa13954f1389d54754f1cbe111ba6a63e3e0..663ecd17da3c0f80c5fb5e15f326a0b91056a474 100644 --- a/res/res_curl.c +++ b/res/res_curl.c @@ -39,20 +39,26 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/module.h" +static const char *dependents[] = { + "func_curl.so", + "res_config_curl.so", +}; + static int unload_module(void) { int res = 0; + size_t i; /* If the dependent modules are still in memory, forbid unload */ - if (ast_module_check("func_curl.so")) { - ast_log(LOG_ERROR, "func_curl.so (dependent module) is still loaded. Cannot unload res_curl.so\n"); - return -1; + for (i = 0; i < ARRAY_LEN(dependents); i++) { + if (ast_module_check(dependents[i])) { + ast_log(LOG_ERROR, "%s (dependent module) is still loaded. Cannot unload res_curl.so\n", dependents[i]); + res = -1; + } } - if (ast_module_check("res_config_curl.so")) { - ast_log(LOG_ERROR, "res_config_curl.so (dependent module) is still loaded. Cannot unload res_curl.so\n"); + if (res) return -1; - } curl_global_cleanup(); @@ -64,7 +70,7 @@ static int load_module(void) int res = 0; if (curl_global_init(CURL_GLOBAL_ALL)) { - ast_log(LOG_ERROR, "Unable to initialize the CURL library. Cannot load res_curl\n"); + ast_log(LOG_ERROR, "Unable to initialize the cURL library. Cannot load res_curl.so\n"); return AST_MODULE_LOAD_DECLINE; }