This file contains functions to help maintain a stack of modules. More...
Data Structures | |
struct | module_stack |
Stack of modules. More... | |
Functions | |
void | modstack_init (struct module_stack *stack) |
Init a stack of modules. More... | |
void | modstack_free (struct module_stack *stack) |
Free the stack of modules. More... | |
int | modstack_call_startup (struct module_stack *stack, const char *module_conf, struct module_env *env) |
Initialises modules and assignes ids. More... | |
int | modstack_config (struct module_stack *stack, const char *module_conf) |
Read config file module settings and set up the modfunc block. More... | |
struct module_func_block * | module_factory (const char **str) |
Get funcblock for module name. More... | |
const char ** | module_list_avail (void) |
Get list of modules available. More... | |
int | modstack_call_init (struct module_stack *stack, const char *module_conf, struct module_env *env) |
Init modules. More... | |
void | modstack_call_deinit (struct module_stack *stack, struct module_env *env) |
Deinit the modules. More... | |
void | modstack_call_destartup (struct module_stack *stack, struct module_env *env) |
Destartup the modules, close, delete. More... | |
int | modstack_find (struct module_stack *stack, const char *name) |
Find index of module by name. More... | |
size_t | mod_get_mem (struct module_env *env, const char *name) |
fetch memory for a module by name, returns 0 if module not there | |
This file contains functions to help maintain a stack of modules.
void modstack_init | ( | struct module_stack * | stack | ) |
Init a stack of modules.
stack | initialised as empty. |
References module_stack::mod, and module_stack::num.
Referenced by ub_ctx_create_nopipe().
void modstack_free | ( | struct module_stack * | stack | ) |
Free the stack of modules.
stack | stack that frees up memory. |
References module_stack::mod, and module_stack::num.
Referenced by daemon_delete(), modstack_call_init(), and ub_ctx_create().
int modstack_call_startup | ( | struct module_stack * | stack, |
const char * | module_conf, | ||
struct module_env * | env | ||
) |
Initialises modules and assignes ids.
Calls module_startup().
stack | Expected empty, filled according to module_conf |
module_conf | string what modules to initialize |
env | module environment which is inited by the modules. environment should have a superalloc, cfg, |
References module_stack::num.
Referenced by context_finalize(), and daemon_privileged().
int modstack_config | ( | struct module_stack * | stack, |
const char * | module_conf | ||
) |
Read config file module settings and set up the modfunc block.
stack | the stack of modules (empty before call). |
module_conf | string what modules to insert. |
References count_modules(), log_err(), MAX_MODULE, module_stack::mod, module_factory(), module_stack::num, VERB_QUERY, and verbose().
Referenced by modstack_call_init().
struct module_func_block* module_factory | ( | const char ** | str | ) |
Get funcblock for module name.
str | string with module name. Advanced to next value on success. The string is assumed whitespace separated list of module names. |
Referenced by modstack_config().
const char** module_list_avail | ( | void | ) |
Get list of modules available.
Get list of modules available.
Referenced by check_modules_exist(), and print_build_options().
int modstack_call_init | ( | struct module_stack * | stack, |
const char * | module_conf, | ||
struct module_env * | env | ||
) |
Init modules.
Calls module_init().
stack | It is modstack_setupped(). |
module_conf | module ordering to check against the ordering in stack. fails on changed ordering. |
env | module environment which is inited by the modules. environment should have a superalloc, cfg, env.need_to_validate is set by the modules. |
References module_func_block::destartup, fptr_ok, fptr_whitelist_mod_init(), module_func_block::init, log_err(), module_stack::mod, modstack_config(), modstack_free(), module_func_block::name, module_env::need_to_validate, module_stack::num, module_func_block::startup, VERB_OPS, and verbose().
Referenced by context_finalize(), and daemon_setup_modules().
void modstack_call_deinit | ( | struct module_stack * | stack, |
struct module_env * | env | ||
) |
Deinit the modules.
stack | made empty. |
env | module env for module deinit() calls. |
References module_func_block::deinit, fptr_ok, fptr_whitelist_mod_deinit(), module_stack::mod, and module_stack::num.
Referenced by daemon_delete(), daemon_setup_modules(), and ub_ctx_create().
void modstack_call_destartup | ( | struct module_stack * | stack, |
struct module_env * | env | ||
) |
Destartup the modules, close, delete.
stack | made empty. |
env | module env for module destartup() calls. |
References module_func_block::destartup, fptr_ok, fptr_whitelist_mod_destartup(), module_stack::mod, and module_stack::num.
Referenced by daemon_delete(), and ub_ctx_create().
int modstack_find | ( | struct module_stack * | stack, |
const char * | name | ||
) |
Find index of module by name.
stack | to look in |
name | the name to look for |
References module_stack::mod, module_func_block::name, and module_stack::num.
Referenced by do_set_option(), get_queries_ratelimit(), get_rrset_bogus(), iterator_set_ip46_support(), mod_get_mem(), reply_and_prefetch(), set_neg_cache_stats(), and zonemd_dnssec_verify_rrset().