* Call the module's initialisation methods. These create
* connection pools and open connections to external resources.
*/
- if (modules_instantiate(config->root_cs) < 0) EXIT_WITH_FAILURE;
+ if (modules_instantiate() < 0) EXIT_WITH_FAILURE;
/*
* Instantiate "permanent" xlats
/*
* Instantiate the modules
*/
- if (modules_instantiate(config->root_cs) < 0) EXIT_WITH_FAILURE;
+ if (modules_instantiate() < 0) EXIT_WITH_FAILURE;
/*
* Create a dummy event list
* Allows the module to initialise connection pools, and complete any registrations that depend on
* attributes created during the bootstrap phase.
*
- * @param[in] root Configuration root.
* @return
* - 0 on success.
* - -1 on failure.
*/
-int modules_instantiate(CONF_SECTION *root)
+int modules_instantiate(void)
{
- CONF_SECTION *modules;
-
- modules = cf_section_find(root, "modules", NULL);
- if (!modules) return 0;
-
DEBUG2("#### Instantiating modules ####");
- if (fr_command_register_hook(NULL, NULL, modules, cmd_table) < 0) {
- ERROR("Failed registering radmin commands for modules - %s",
- fr_strerror());
- return -1;
- }
-
if (rbtree_walk(module_instance_name_tree, RBTREE_IN_ORDER, _module_instantiate, NULL) < 0) return -1;
#ifndef NDEBUG
cf_log_debug(modules, " } # modules");
+ if (fr_command_register_hook(NULL, NULL, modules, cmd_table) < 0) {
+ ERROR("Failed registering radmin commands for modules - %s",
+ fr_strerror());
+ return -1;
+ }
+
return 0;
}
int modules_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t *el) CC_HINT(nonnull);
-int modules_instantiate(CONF_SECTION *root) CC_HINT(nonnull);
+int modules_instantiate(void) CC_HINT(nonnull);
module_instance_t *module_bootstrap(module_instance_t const *parent, CONF_SECTION *cs) CC_HINT(nonnull(2));