.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_features_config,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
*((struct ast_module **) &(info->self)) = mod;
}
+static int module_post_register(struct ast_module *mod)
+{
+ int res;
+
+ /* Split lists from mod->info. */
+ res = ast_vector_string_split(&mod->requires, mod->info->requires, ",", 0, strcasecmp);
+ res |= ast_vector_string_split(&mod->optional_modules, mod->info->optional_modules, ",", 0, strcasecmp);
+ res |= ast_vector_string_split(&mod->enhances, mod->info->enhances, ",", 0, strcasecmp);
+
+ return res;
+}
+
static void module_destroy(struct ast_module *mod)
{
AST_VECTOR_CALLBACK_VOID(&mod->requires, ast_free);
return required ? AST_MODULE_LOAD_FAILURE : AST_MODULE_LOAD_DECLINE;
}
- /* Split lists from mod->info. */
- res = ast_vector_string_split(&mod->requires, mod->info->requires, ",", 0, strcasecmp);
- res |= ast_vector_string_split(&mod->optional_modules, mod->info->optional_modules, ",", 0, strcasecmp);
- res |= ast_vector_string_split(&mod->enhances, mod->info->enhances, ",", 0, strcasecmp);
- if (res) {
+ if (module_post_register(mod)) {
goto prestart_error;
}
}
continue;
}
+ /* Parse dependendencies from mod->info. */
+ if (module_post_register(mod)) {
+ return -1;
+ }
+
/* Built-in modules are not preloaded, most have an early load priority. */
if (!add_to_load_order(mod->resource, load_order, 0, 0, 1)) {
return -1;
.support_level = AST_MODULE_SUPPORT_CORE,
.load = load_module,
.unload = unload_module,
+ /* This reload does not support realtime so it does not require "extconfig". */
.reload = reload_module,
.load_pri = 0,
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
- .requires = "http",
+ .requires = "extconfig,acl,http",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);
.support_level = AST_MODULE_SUPPORT_CORE,
.load = load_module,
.unload = unload_module,
+ /* This reload doesn't use config so this module doesn't require "extconfig". */
.reload = reload_module,
/* Load after the format modules to reduce processing during startup. */
.load_pri = AST_MODPRI_APP_DEPEND + 1,
.unload = unload_module,
.reload = reload_module,
.load_pri = AST_MODPRI_CORE,
+ .requires = "extconfig",
);