unbound: module_func_block Struct Reference

unbound 0.1

Data Fields
module_func_block Struct Reference

Module functionality block. More...

`#include <module.h>`

## Data Fields
const char * | name
| text string name of module
int(* | init )(struct module_env *env, int id)
| init the module.
void(* | deinit )(struct module_env *env, int id)
| de-init, delete, the module.
void(* | operate )(struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound)
| accept a new query, or work further on existing query.
void(* | inform_super )(struct module_qstate *qstate, int id, struct module_qstate *super)
| inform super querystate about the results from this subquerystate.
void(* | clear )(struct module_qstate *qstate, int id)
| clear module specific data
size_t(* | get_mem )(struct module_env *env, int id)
| How much memory is the module specific data using.

## Detailed Description

Module functionality block.

## Field Documentation

## ◆ init

int(* module_func_block::init) (struct module_env *env, int id)

init the module.

Called once for the global state. This is the place to apply settings from the config file.

Parameters

  env | module environment.
  id | module id number. return: 0 on error

Referenced by check_mod(), and modstack_setup().

## ◆ deinit

void(* module_func_block::deinit) (struct module_env *env, int id)

de-init, delete, the module.

Called once for the global state.

Parameters

  env | module environment.
  id | module id number.

Referenced by check_mod(), and modstack_desetup().

## ◆ operate

void(* module_func_block::operate) (struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound)

accept a new query, or work further on existing query.

Changes the qstate->ext_state to be correct on exit.

Parameters

  ev | event that causes the module state machine to (re-)activate.
  qstate | the query state. Note that this method is not allowed to change the query state 'identity', that is query info, qflags, and priming status. Attach a subquery to get results to a different query.
  id | module id number that operate() is called on.
  outbound | if not NULL this event is due to the reply/timeout or error on this outbound query.

Returns
  : if at exit the ext_state is: o wait_module: next module is started. (with pass event). o error or finished: previous module is resumed. o otherwise it waits until that event happens (assumes the service routine to make subrequest or send message have been called.

Referenced by mesh_run().

## ◆ inform_super

void(* module_func_block::inform_super) (struct module_qstate *qstate, int id, struct module_qstate *super)

inform super querystate about the results from this subquerystate.

Is called when the querystate is finished. The method invoked is the one from the current module active in the super querystate.

Parameters

  qstate | the query state that is finished. Examine return_rcode and return_reply in the qstate.
  id | module id for this module. This coincides with the current module for the super qstate.
  super | the super querystate that needs to be informed.

Referenced by mesh_walk_supers().

## ◆ get_mem

size_t(* module_func_block::get_mem) (struct module_env *env, int id)

How much memory is the module specific data using.

Parameters

  env | module environment.
  id | the module id.

Returns
  the number of bytes that are alloced.

Referenced by mod_get_mem(), and worker_mem_report().

The documentation for this struct was generated from the following file:

- util/module.h