This file contains a module that performs DNS64 query processing. More...
#include "util/module.h"
Functions | |
struct module_func_block * | dns64_get_funcblock (void) |
Get the dns64 function block. More... | |
int | dns64_init (struct module_env *env, int id) |
dns64 init More... | |
void | dns64_deinit (struct module_env *env, int id) |
dns64 deinit More... | |
void | dns64_operate (struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound) |
dns64 operate on a query More... | |
void | dns64_inform_super (struct module_qstate *qstate, int id, struct module_qstate *super) |
This function is called when a sub-query finishes to inform the parent query. More... | |
void | dns64_clear (struct module_qstate *qstate, int id) |
dns64 cleanup query state More... | |
size_t | dns64_get_mem (struct module_env *env, int id) |
dns64 alloc size routine More... | |
This file contains a module that performs DNS64 query processing.
struct module_func_block* dns64_get_funcblock | ( | void | ) |
Get the dns64 function block.
Get the dns64 function block.
Referenced by module_funcs_avail().
int dns64_init | ( | struct module_env * | env, |
int | id | ||
) |
dns64 init
dns64 init
env | Global state of all module instances. |
id | This instance's ID number. |
References module_env::cfg, dns64_apply_cfg(), dns64_env::ignore_aaaa, log_err(), module_env::modinfo, and name_tree_init().
Referenced by fptr_whitelist_mod_init().
void dns64_deinit | ( | struct module_env * | env, |
int | id | ||
) |
dns64 deinit
dns64 deinit
env | Global state of all module instances. |
id | This instance's ID number. |
References free_ignore_aaaa_node(), dns64_env::ignore_aaaa, module_env::modinfo, and traverse_postorder().
Referenced by fptr_whitelist_mod_deinit().
void dns64_operate | ( | struct module_qstate * | qstate, |
enum module_ev | event, | ||
int | id, | ||
struct outbound_entry * | outbound | ||
) |
dns64 operate on a query
dns64 operate on a query
It gets called each time a query receives an event which we may need to handle. We respond by updating the state of the query.
qstate | Structure containing the state of the query. |
event | Event that has just been received. |
id | This module's instance ID. |
outbound | State of a DNS query on an authoritative server. We never do our own queries ourselves (other modules do it for us), so this is unused. |
References DNS64_INTERNAL_QUERY, DNS64_NEW_QUERY, module_qstate::ext_state, handle_event_moddone(), handle_event_pass(), log_err(), log_query_info(), module_qstate::minfo, module_error, module_event_moddone, module_event_new, module_event_pass, module_finished, module_qstate::no_cache_store, module_qstate::qinfo, module_qstate::region, regional_alloc(), dns64_qstate::started_no_cache_store, dns64_qstate::state, strextstate(), strmodulevent(), VERB_QUERY, and verbose().
Referenced by fptr_whitelist_mod_operate().
void dns64_inform_super | ( | struct module_qstate * | qstate, |
int | id, | ||
struct module_qstate * | super | ||
) |
This function is called when a sub-query finishes to inform the parent query.
We issue two kinds of sub-queries: PTR and A.
qstate | State of the sub-query. |
id | This module's instance ID. |
super | State of the super-query. |
References log_err(), log_query_info(), module_qstate::minfo, module_qstate::qinfo, module_qstate::region, regional_alloc(), module_qstate::return_rcode, and VERB_ALGO.
Referenced by fptr_whitelist_mod_inform_super().
void dns64_clear | ( | struct module_qstate * | qstate, |
int | id | ||
) |
dns64 cleanup query state
dns64 cleanup query state
Since we do not allocate memory, it's just a matter of setting a pointer to NULL.
qstate | Query state. |
id | This module's instance ID. |
References module_qstate::minfo.
Referenced by fptr_whitelist_mod_clear().
size_t dns64_get_mem | ( | struct module_env * | env, |
int | id | ||
) |
dns64 alloc size routine
dns64 alloc size routine
env | Module environment. |
id | This module's instance ID. |
Referenced by fptr_whitelist_mod_get_mem().