General: Silence modules on (un)load.
authorAlexander Traud <pabstraud@compuserve.com>
Fri, 5 Jan 2018 13:44:55 +0000 (14:44 +0100)
committerRichard Mudgett <rmudgett@digium.com>
Sun, 7 Jan 2018 02:13:07 +0000 (20:13 -0600)
Some (normally optional) modules created notices, warnings, and even errors
in normal situations like (un)load. This cluttered the command-line interface
(CLI) on start and while stopping gracefully. However, when an user went for
the script './contrib/scripts/install_prereq', those modules get compiled-in
because their prerequisites were met at compile time. Furthermore, because of
ASTERISK_27475, the former talkative module 'res_curl' is built as side-effect.

ASTERISK-27553

Change-Id: I9f105f46d72553994e820679bfde3478a551b281

pbx/pbx_lua.c
res/res_curl.c
res/res_odbc.c

index fcab476..741e950 100644 (file)
@@ -1648,9 +1648,6 @@ static int load_or_reload_lua_stuff(void)
                }
        }
 
-       if (!res) {
-               ast_log(LOG_NOTICE, "Lua PBX Switch loaded.\n");
-       }
        lua_close(L);
        return res;
 }
@@ -1660,7 +1657,6 @@ static int unload_module(void)
        ast_context_destroy(NULL, registrar);
        ast_unregister_switch(&lua_switch);
        lua_free_extensions();
-       ast_log(LOG_NOTICE, "Lua PBX Switch unloaded.\n");
        return 0;
 }
 
index 2551efc..e0f753c 100644 (file)
@@ -60,7 +60,9 @@ static int unload_module(void)
        /* If the dependent modules are still in memory, forbid unload */
        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]);
+                       if (!ast_shutting_down()) {
+                               ast_log(LOG_WARNING, "%s (dependent module) is still loaded.  Cannot unload res_curl.so\n", dependents[i]);
+                       }
                        res = -1;
                }
        }
@@ -73,19 +75,9 @@ static int unload_module(void)
        return res;
 }
 
-/*!
- * \brief Load the module
- *
- * Module loading including tests for configuration or dependencies.
- * This function can return AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_DECLINE,
- * or AST_MODULE_LOAD_SUCCESS. If a dependency or environment variable fails
- * tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
- * configuration file or other non-critical problem return
- * AST_MODULE_LOAD_DECLINE. On success return AST_MODULE_LOAD_SUCCESS.
- */
 static int load_module(void)
 {
-       int res = 0;
+       int res = AST_MODULE_LOAD_SUCCESS;
 
        if (curl_global_init(CURL_GLOBAL_ALL)) {
                ast_log(LOG_ERROR, "Unable to initialize the cURL library. Cannot load res_curl.so\n");
index 7aa4524..4a5411e 100644 (file)
@@ -1001,16 +1001,6 @@ static int unload_module(void)
        return -1;
 }
 
-/*!
- * \brief Load the module
- *
- * Module loading including tests for configuration or dependencies.
- * This function can return AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_DECLINE,
- * or AST_MODULE_LOAD_SUCCESS. If a dependency or environment variable fails
- * tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
- * configuration file or other non-critical problem return
- * AST_MODULE_LOAD_DECLINE. On success return AST_MODULE_LOAD_SUCCESS.
- */
 static int load_module(void)
 {
        if (!(class_container = ao2_container_alloc(1, null_hash_fn, ao2_match_by_addr)))
@@ -1018,8 +1008,7 @@ static int load_module(void)
        if (load_odbc_config() == -1)
                return AST_MODULE_LOAD_DECLINE;
        ast_cli_register_multiple(cli_odbc, ARRAY_LEN(cli_odbc));
-       ast_log(LOG_NOTICE, "res_odbc loaded.\n");
-       return 0;
+       return AST_MODULE_LOAD_SUCCESS;
 }
 
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "ODBC resource",