Lines Matching full:module
2 * util/module.h - DNS handling module interface
41 * The module interface uses the DNS modules as state machines. The
47 * The module provides a number of functions, listed in the module_func_block.
48 * The module is inited and destroyed and memory usage queries, for the
49 * module as a whole, for entire-module state (such as a cache). And per-query
56 * The module environment contains services and information and caches
58 * function pointers for module-specific tasks (like sending queries).
60 * *** Example module calls for a normal query
65 * At the start of the program the iterator module is initialised.
66 * The iterator module sets up its global state, such as donotquery lists
70 * starts the resolution process. The validator module is the first
74 * causes the next module in the list to be started.
76 * The next module is the iterator. It is started on the passed query and
83 * operate function is called for the query, on the iterator module,
86 * operate call, which causes the previous module to be started.
88 * The previous module, the validator module, is started with the event
89 * that the iterator module is done. The validator decides to validate
94 * There is no previous module from the validator module, and the mesh
102 * still exists and information can be copied from it (but the module should
109 * *** Example module calls for recursion
111 * A module is called in operate, and it decides that it wants to perform
114 * The routine returns the newly created state, and potentially the module
115 * can edit the module-states for the newly created query (i.e. pass along
116 * some information, like delegation points). The module then suspends,
121 * It starts again at the start of the module list for them. The query
123 * done. When they are done the mesh calls inform_super on the module that
124 * wanted the recursion. After that the mesh calls operate() on the module
125 * that wanted to do the recursion, and during this phase the module could,
128 * If the module decides it no longer wants the recursive information
133 * The iterator module will fetch items from the cache, so a recursion
135 * module has to wait for completion or eventual timeout. A recursive query
147 * module towards the leftmost modules and then towards the user.
244 /** module id */
254 * qstate: the module state. NULL when calling before the query reaches the
265 * id: module id.
289 * id: module id.
302 * id: module id.
314 * id: module id.
334 * Module environment.
335 * Services and data provided to the module.
380 * This outbound_entry will be used on later module invocations
407 * o need to initialise the new state (module init; it is a new state).
408 * so that the next run of the query with this module is successful.
435 * o need to initialise the new state (module init; it is a new state).
436 * so that the next run of the query with this module is successful.
532 /** module specific data. indexed by module id. */
548 /** module stack */
559 * External visible states of the module state machine
568 /** module is waiting for another module */
570 /** module is waiting for another module; that other is restarted */
572 /** module is waiting for sub-query */
574 /** module could not finish the query */
576 /** module is finished with query */
586 /** query passed by other module */
594 /** next module is done, and its reply is awaiting you */
624 * Module state, per query.
645 /** the reply message, with message for client and calling module */
657 /** which module is executing */
659 /** module states */
661 /** module specific data for query. indexed by module id. */
718 * Module functionality block
721 /** text string name of module */
725 * Set up the module for start. This is called only once at startup.
728 * @param env: module environment.
729 * @param id: module id number.
735 * Close down the module for stop. This is called only once before
739 * @param env: module environment.
740 * @param id: module id number.
745 * Initialise the module. Called when restarting or reloading the
748 * @param env: module environment.
749 * @param id: module id number.
755 * Deinitialise the module, undo stuff done during init().
757 * @param env: module environment.
758 * @param id: module id number.
765 * @param ev: event that causes the module state machine to
772 * @param id: module id number that operate() is called on.
776 * o wait_module: next module is started. (with pass event).
777 * o error or finished: previous module is resumed.
788 * the one from the current module active in the super querystate.
791 * @param id: module id for this module.
792 * This coincides with the current module for the super qstate.
799 * clear module specific data
804 * How much memory is the module specific data using.
805 * @param env: module environment.
806 * @param id: the module id.
813 * Debug utility: module external qstate to string
820 * Debug utility: module event to string
821 * @param e: the module event value.
894 * @param env: the module environment.
901 * @param env: the module environment.
912 * @param env: the module environment.
925 * @param env: the module environment.
926 * @param id: module id.
935 * Delete callback for specified type and module id.
936 * @param env: the module environment.
938 * @param id: module id.
946 * @param env: the module environment.
953 * @param env: the module environment.
963 * @param env: the module environment.
974 * @param env: the module environment.
983 * @param env: the module environment.
992 * @param id: module id.