|
unbound
0.1
|
This file contains functions to help maintain a stack of modules. More...
#include "config.h"#include <ctype.h>#include "services/modstack.h"#include "util/module.h"#include "util/fptr_wlist.h"#include "iterator/iterator.h"#include "validator/validator.h"Typedefs | |
|
typedef struct module_func_block *(* | fbgetfunctype )(void) |
| func block get function type | |
Functions | |
| static int | count_modules (const char *s) |
| count number of modules (words) in the string | |
| void | modstack_init (struct module_stack *stack) |
| Init a stack of modules. | |
| int | modstack_config (struct module_stack *stack, const char *module_conf) |
| Read config file module settings and set up the modfunc block. | |
| const char ** | module_list_avail (void) |
| The list of module names. | |
| static fbgetfunctype * | module_funcs_avail (void) |
| The list of module func blocks. | |
| struct module_func_block * | module_factory (const char **str) |
| Get funcblock for module name. | |
| int | modstack_setup (struct module_stack *stack, const char *module_conf, struct module_env *env) |
| Setup modules. | |
| void | modstack_desetup (struct module_stack *stack, struct module_env *env) |
| Desetup the modules, deinit, delete. | |
| int | modstack_find (struct module_stack *stack, const char *name) |
| Find index of module by name. | |
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 daemon_init(), and ub_ctx_create().
| 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_setup().
| const char** module_list_avail | ( | void | ) |
The list of module names.
Get list of modules available.
Referenced by module_factory(), and usage().
| struct module_func_block* module_factory | ( | const char ** | str | ) | [read] |
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. |
References module_funcs_avail(), and module_list_avail().
Referenced by modstack_config().
| int modstack_setup | ( | struct module_stack * | stack, |
| const char * | module_conf, | ||
| struct module_env * | env | ||
| ) |
Setup modules.
Assigns ids and calls module_init.
| stack,: | if not empty beforehand, it will be desetup()ed. It is then modstack_configged(). |
| module_conf,: | string what modules to insert. |
| 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 fptr_ok, fptr_whitelist_mod_init(), module_func_block::init, log_err(), module_stack::mod, modstack_config(), modstack_desetup(), module_func_block::name, module_env::need_to_validate, module_stack::num, VERB_OPS, and verbose().
Referenced by context_finalize(), and daemon_setup_modules().
| void modstack_desetup | ( | struct module_stack * | stack, |
| struct module_env * | env | ||
| ) |
Desetup the modules, deinit, delete.
| 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(), modstack_setup(), and ub_ctx_delete().
| 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_list_stubs(), get_rrset_bogus(), and print_mem().
1.7.6.1