diff options
-rw-r--r-- | include/asterisk/module.h | 9 | ||||
-rw-r--r-- | main/loader.c | 11 |
2 files changed, 12 insertions, 8 deletions
diff --git a/include/asterisk/module.h b/include/asterisk/module.h index 3e1667ed0..b5c96f8a1 100644 --- a/include/asterisk/module.h +++ b/include/asterisk/module.h @@ -58,10 +58,11 @@ enum ast_module_unload_mode { }; enum ast_module_load_result { - AST_MODULE_LOAD_SUCCESS = 0, /*!< Module loaded and configured */ - AST_MODULE_LOAD_DECLINE = 1, /*!< Module is not configured */ - AST_MODULE_LOAD_SKIP = 2, /*!< Module was skipped for some reason */ - AST_MODULE_LOAD_FAILURE = -1, /*!< Module could not be loaded properly */ + AST_MODULE_LOAD_SUCCESS = 0, /*!< Module loaded and configured */ + AST_MODULE_LOAD_DECLINE = 1, /*!< Module is not configured */ + AST_MODULE_LOAD_SKIP = 2, /*!< Module was skipped for some reason */ + AST_MODULE_LOAD_PRIORITY = 3, /*!< Module is not loaded yet, but is added to prioity heap */ + AST_MODULE_LOAD_FAILURE = -1, /*!< Module could not be loaded properly */ }; /*! diff --git a/main/loader.c b/main/loader.c index e6e688307..ba6af732d 100644 --- a/main/loader.c +++ b/main/loader.c @@ -743,9 +743,8 @@ static enum ast_module_load_result start_resource(struct ast_module *mod) mod->flags.declined = 1; break; case AST_MODULE_LOAD_FAILURE: - break; - case AST_MODULE_LOAD_SKIP: - /* modules should never return this value */ + case AST_MODULE_LOAD_SKIP: /* modules should never return this value */ + case AST_MODULE_LOAD_PRIORITY: break; } @@ -807,7 +806,7 @@ static enum ast_module_load_result load_resource(const char *resource_name, unsi if (resource_heap) { ast_heap_push(resource_heap, mod); - res = AST_MODULE_LOAD_SKIP; + res = AST_MODULE_LOAD_PRIORITY; } else { res = start_resource(mod); } @@ -893,6 +892,9 @@ static int load_resource_list(struct load_order *load_order, unsigned int global goto done; case AST_MODULE_LOAD_SKIP: break; + case AST_MODULE_LOAD_PRIORITY: + AST_LIST_REMOVE_CURRENT(entry); + break; } } AST_LIST_TRAVERSE_SAFE_END; @@ -908,6 +910,7 @@ static int load_resource_list(struct load_order *load_order, unsigned int global res = -1; goto done; case AST_MODULE_LOAD_SKIP: + case AST_MODULE_LOAD_PRIORITY: break; } } |