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. | |
| int | dns64_init (struct module_env *env, int id) |
| dns64 init | |
| void | dns64_deinit (struct module_env *env, int id) |
| dns64 deinit | |
| void | dns64_operate (struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound) |
| dns64 operate on a query | |
| 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. | |
| void | dns64_clear (struct module_qstate *qstate, int id) |
| dns64 cleanup query state | |
| size_t | dns64_get_mem (struct module_env *env, int id) |
| dns64 alloc size routine | |
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.
References dns64_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 dns64_adjust_a(), dns64_adjust_ptr(), DNS64_INTERNAL_QUERY, DNS64_SUBQUERY_FINISHED, dns_cache_store(), module_qstate::env, module_qstate::is_valrec, LDNS_RR_TYPE_A, LDNS_RR_TYPE_PTR, log_assert, log_err(), log_query_info(), module_qstate::minfo, module_qstate::no_cache_store, module_qstate::prefetch_leeway, module_qstate::qinfo, module_qstate::qstarttime, query_info::qtype, module_qstate::query_flags, module_qstate::region, regional_alloc(), dns_msg::rep, reply_find_answer_rrset(), module_qstate::return_msg, module_qstate::return_rcode, dns64_qstate::started_no_cache_store, dns64_qstate::state, 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. |
References module_env::modinfo.
Referenced by fptr_whitelist_mod_get_mem().