modstack.h File Reference

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.
int modstack_config (struct module_stack *stack, const char *module_conf)
 Read config file module settings and set up the modfunc block.
struct module_func_blockmodule_factory (const char **str)
 Get funcblock for module name.
const char ** module_list_avail (void)
 Get list of modules available.
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.

Detailed Description

This file contains functions to help maintain a stack of modules.


Function Documentation

void modstack_init ( struct module_stack stack  ) 

Init a stack of modules.

Parameters:
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.

Parameters:
stack,: the stack of modules (empty before call).
module_conf,: string what modules to insert.
Returns:
false on error

References count_modules(), log_err(), MAX_MODULE, module_stack::mod, module_factory(), module_stack::num, VERB_QUERY, and verbose().

Referenced by modstack_setup().

struct module_func_block* module_factory ( const char **  str  )  [read]

Get funcblock for module name.

Parameters:
str,: string with module name. Advanced to next value on success. The string is assumed whitespace separated list of module names.
Returns:
funcblock or NULL on error.

References module_funcs_avail(), and module_list_avail().

Referenced by modstack_config().

const char** module_list_avail ( void   ) 

Get list of modules available.

Returns:
list of modules available. Static strings, ends with NULL.

Referenced by module_factory(), and usage().

int modstack_setup ( struct module_stack stack,
const char *  module_conf,
struct module_env env 
)

Setup modules.

Assigns ids and calls module_init.

Parameters:
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.
Returns:
on false a module init failed.

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.

Parameters:
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.

Parameters:
stack,: to look in
name,: the name to look for
Returns:
-1 on failure, otherwise index number.

References module_stack::mod, module_func_block::name, and module_stack::num.

Referenced by do_list_stubs(), get_rrset_bogus(), print_deleg_lookup(), and print_mem().

Generated on Thu Apr 22 00:30:17 2010 for unbound by  doxygen 1.6.3