unbound: dns64/dns64.h File Reference

unbound 0.1

Functions
dns64.h File Reference

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

## Detailed Description

This file contains a module that performs DNS64 query processing.

## Function Documentation

## ◆ dns64_get_funcblock()

struct module_func_block * dns64_get_funcblock | ( | void |  | ) |

Get the dns64 function block.

Returns
  : function block with function pointers to dns64 methods.

Get the dns64 function block.

References dns64_block.

Referenced by module_funcs_avail().

## ◆ dns64_init()

int dns64_init | ( | struct module_env * | env,
|  | int | id )

dns64 init

dns64 init

Parameters

  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().

## ◆ dns64_deinit()

void dns64_deinit | ( | struct module_env * | env,
|  | int | id )

dns64 deinit

dns64 deinit

Parameters

  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().

## ◆ dns64_operate()

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.

Parameters

  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().

## ◆ dns64_inform_super()

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.

Parameters

  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, 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::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().

## ◆ dns64_clear()

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.

Parameters

  qstate | Query state.
  id | This module's instance ID.

References module_qstate::minfo.

Referenced by fptr_whitelist_mod_clear().

## ◆ dns64_get_mem()

size_t dns64_get_mem | ( | struct module_env * | env,
|  | int | id )

dns64 alloc size routine

dns64 alloc size routine

Parameters

  env | Module environment.
  id | This module's instance ID.

References module_env::modinfo.

Referenced by fptr_whitelist_mod_get_mem().