|
unbound
0.1
|
Data Structures | |
| struct | iter_env |
| Global state for the iterator. More... | |
| struct | iter_qstate |
| Per query state for the iterator module. More... | |
| struct | iter_prep_list |
| List of prepend items. More... | |
Macros | |
| #define | MAX_TARGET_COUNT 64 |
| max number of targets spawned for a query and its subqueries | |
| #define | MAX_DP_TARGET_COUNT 16 |
| max number of target lookups per qstate, per delegation point | |
| #define | MAX_TARGET_NX 5 |
| max number of nxdomains allowed for target lookups for a query and its subqueries | |
| #define | MAX_RESTART_COUNT 8 |
| max number of query restarts. More... | |
| #define | MAX_REFERRAL_COUNT 130 |
| max number of referrals. More... | |
| #define | MAX_SENT_COUNT 32 |
| max number of queries-sent-out. More... | |
| #define | DNSSEC_LAME_DETECT_COUNT 4 |
| max number of queries for which to perform dnsseclameness detection, (rrsigs missing detection) after that, just pick up that response | |
| #define | MAX_MINIMISE_COUNT 10 |
| max number of QNAME minimisation iterations. More... | |
| #define | MAX_MINIMISE_TIMEOUT_COUNT 3 |
| #define | MINIMISE_ONE_LAB 4 |
| number of labels from QNAME that are always send individually when using QNAME minimisation, even when the number of labels of the QNAME is bigger tham MAX_MINIMISE_COUNT | |
| #define | MINIMISE_MULTIPLE_LABS (MAX_MINIMISE_COUNT - MINIMISE_ONE_LAB) |
| #define | TARGET_FETCH_STOP 3 |
| at what query-sent-count to stop target fetch policy | |
| #define | USEFUL_SERVER_TOP_TIMEOUT 120000 |
| maximum timeout before a host is deemed unsuitable, in msec. More... | |
| #define | OUTBOUND_MSG_RETRY 5 |
| number of retries on outgoing queries | |
| #define | RTT_BAND 400 |
| RTT band, within this amount from the best, servers are chosen randomly. More... | |
| #define | INFRA_BACKOFF_INITIAL 240 |
| Start value for blacklisting a host, 2*USEFUL_SERVER_TOP_TIMEOUT in sec. | |
Enumerations | |
| enum | minimisation_state { INIT_MINIMISE_STATE = 0, MINIMISE_STATE, SKIP_MINIMISE_STATE, DONOT_MINIMISE_STATE } |
| QNAME minimisation state. More... | |
| enum | iter_state { INIT_REQUEST_STATE = 0, INIT_REQUEST_2_STATE, INIT_REQUEST_3_STATE, QUERYTARGETS_STATE, QUERY_RESP_STATE, PRIME_RESP_STATE, COLLECT_CLASS_STATE, DSNS_FIND_STATE, FINISHED_STATE } |
| State of the iterator for a query. More... | |
Functions | |
| struct module_func_block * | iter_get_funcblock (void) |
| Get the iterator function block. More... | |
| const char * | iter_state_to_string (enum iter_state state) |
| Get iterator state as a string. More... | |
| int | iter_state_is_responsestate (enum iter_state s) |
| See if iterator state is a response state. More... | |
| int | iter_init (struct module_env *env, int id) |
| iterator init | |
| void | iter_deinit (struct module_env *env, int id) |
| iterator deinit | |
| void | iter_operate (struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound) |
| iterator operate on a query | |
| void | iter_inform_super (struct module_qstate *qstate, int id, struct module_qstate *super) |
| Return priming query results to interested super querystates. More... | |
| void | iter_clear (struct module_qstate *qstate, int id) |
| iterator cleanup query state | |
| size_t | iter_get_mem (struct module_env *env, int id) |
| iterator alloc size routine | |
Variables | |
| int | UNKNOWN_SERVER_NICENESS |
| how nice is a server without further information, in msec Equals rtt initial timeout value. | |
This file contains a module that performs recursive iterative DNS query processing.
| #define MAX_RESTART_COUNT 8 |
max number of query restarts.
Determines max number of CNAME chain.
| #define MAX_REFERRAL_COUNT 130 |
max number of referrals.
Makes sure resolver does not run away
| #define MAX_SENT_COUNT 32 |
max number of queries-sent-out.
Make sure large NS set does not loop
| #define MAX_MINIMISE_COUNT 10 |
max number of QNAME minimisation iterations.
Limits number of queries for QNAMEs with a lot of labels.
| #define USEFUL_SERVER_TOP_TIMEOUT 120000 |
maximum timeout before a host is deemed unsuitable, in msec.
After host_ttl this will be timed out and the host will be tried again. Equals RTT_MAX_TIMEOUT
| #define RTT_BAND 400 |
RTT band, within this amount from the best, servers are chosen randomly.
Chosen so that the UNKNOWN_SERVER_NICENESS falls within the band of a fast server, this causes server exploration as a side benefit. msec.
| enum minimisation_state |
QNAME minimisation state.
| enum iter_state |
State of the iterator for a query.
| struct module_func_block* iter_get_funcblock | ( | void | ) |
Get the iterator function block.
References iter_block.
Referenced by module_funcs_avail().
| const char* iter_state_to_string | ( | enum iter_state | state | ) |
Get iterator state as a string.
| state | to convert |
References COLLECT_CLASS_STATE, DSNS_FIND_STATE, FINISHED_STATE, INIT_REQUEST_2_STATE, INIT_REQUEST_3_STATE, INIT_REQUEST_STATE, PRIME_RESP_STATE, QUERY_RESP_STATE, and QUERYTARGETS_STATE.
Referenced by iter_handle().
| int iter_state_is_responsestate | ( | enum iter_state | s | ) |
See if iterator state is a response state.
| s | to inspect |
References COLLECT_CLASS_STATE, INIT_REQUEST_2_STATE, INIT_REQUEST_3_STATE, INIT_REQUEST_STATE, and QUERYTARGETS_STATE.
Referenced by next_state().
| void iter_inform_super | ( | struct module_qstate * | qstate, |
| int | id, | ||
| struct module_qstate * | super | ||
| ) |
Return priming query results to interested super querystates.
Sets the delegation point and delegation message (not nonRD queries). This is a callback from walk_supers.
| qstate | query state that finished. |
| id | module id. |
| super | the qstate to inform. |
References DSNS_FIND_STATE, module_qstate::is_priming, LDNS_RR_CLASS_ANY, LDNS_RR_TYPE_DS, module_qstate::minfo, processClassResponse(), processDSNSResponse(), query_info::qclass, module_qstate::qinfo, query_info::qtype, and module_qstate::return_rcode.
Referenced by fptr_whitelist_mod_inform_super().
1.8.18