|
Electroneum
|

Go to the source code of this file.
Classes | |
| struct | iter_env |
| struct | iter_qstate |
| struct | iter_prep_list |
Macros | |
| #define | MAX_TARGET_COUNT 64 |
| #define | MAX_RESTART_COUNT 8 |
| #define | MAX_REFERRAL_COUNT 130 |
| #define | MAX_SENT_COUNT 32 |
| #define | DNSSEC_LAME_DETECT_COUNT 4 |
| #define | MAX_MINIMISE_COUNT 10 |
| #define | MAX_MINIMISE_TIMEOUT_COUNT 3 |
| #define | MINIMISE_ONE_LAB 4 |
| #define | MINIMISE_MULTIPLE_LABS (MAX_MINIMISE_COUNT - MINIMISE_ONE_LAB) |
| #define | TARGET_FETCH_STOP 3 |
| #define | UNKNOWN_SERVER_NICENESS 376 |
| #define | USEFUL_SERVER_TOP_TIMEOUT 120000 |
| #define | OUTBOUND_MSG_RETRY 5 |
| #define | RTT_BAND 400 |
| #define | INFRA_BACKOFF_INITIAL 240 |
Enumerations | |
| enum | minimisation_state { INIT_MINIMISE_STATE = 0, MINIMISE_STATE, SKIP_MINIMISE_STATE, DONOT_MINIMISE_STATE } |
| 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 } |
Functions | |
| struct module_func_block * | iter_get_funcblock (void) |
| const char * | iter_state_to_string (enum iter_state state) |
| int | iter_state_is_responsestate (enum iter_state s) |
| int | iter_init (struct module_env *env, int id) |
| void | iter_deinit (struct module_env *env, int id) |
| void | iter_operate (struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound) |
| void | iter_inform_super (struct module_qstate *qstate, int id, struct module_qstate *super) |
| void | iter_clear (struct module_qstate *qstate, int id) |
| size_t | iter_get_mem (struct module_env *env, int id) |
This file contains a module that performs recursive iterative DNS query processing.
Definition in file iterator.h.
| #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
Definition at line 66 of file iterator.h.
| #define INFRA_BACKOFF_INITIAL 240 |
Start value for blacklisting a host, 2*USEFUL_SERVER_TOP_TIMEOUT in sec
Definition at line 99 of file iterator.h.
| #define MAX_MINIMISE_COUNT 10 |
max number of QNAME minimisation iterations. Limits number of queries for QNAMEs with a lot of labels.
Definition at line 71 of file iterator.h.
| #define MAX_MINIMISE_TIMEOUT_COUNT 3 |
Definition at line 74 of file iterator.h.
| #define MAX_REFERRAL_COUNT 130 |
max number of referrals. Makes sure resolver does not run away
Definition at line 61 of file iterator.h.
| #define MAX_RESTART_COUNT 8 |
max number of query restarts. Determines max number of CNAME chain.
Definition at line 59 of file iterator.h.
| #define MAX_SENT_COUNT 32 |
max number of queries-sent-out. Make sure large NS set does not loop
Definition at line 63 of file iterator.h.
| #define MAX_TARGET_COUNT 64 |
max number of targets spawned for a query and its subqueries
Definition at line 57 of file iterator.h.
| #define MINIMISE_MULTIPLE_LABS (MAX_MINIMISE_COUNT - MINIMISE_ONE_LAB) |
Definition at line 80 of file iterator.h.
| #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
Definition at line 79 of file iterator.h.
| #define OUTBOUND_MSG_RETRY 5 |
number of retries on outgoing queries
Definition at line 93 of file iterator.h.
| #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.
Definition at line 97 of file iterator.h.
| #define TARGET_FETCH_STOP 3 |
at what query-sent-count to stop target fetch policy
Definition at line 82 of file iterator.h.
| #define UNKNOWN_SERVER_NICENESS 376 |
how nice is a server without further information, in msec Equals rtt initial timeout value.
Definition at line 86 of file iterator.h.
| #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
Definition at line 91 of file iterator.h.
| enum iter_state |
State of the iterator for a query.
Definition at line 165 of file iterator.h.
| enum minimisation_state |
QNAME minimisation state
Definition at line 142 of file iterator.h.
| void iter_clear | ( | struct module_qstate * | qstate, |
| int | id | ||
| ) |
iterator cleanup query state
| void iter_deinit | ( | struct module_env * | env, |
| int | id | ||
| ) |
iterator deinit
| struct module_func_block* iter_get_funcblock | ( | void | ) |
Get the iterator function block.
| size_t iter_get_mem | ( | struct module_env * | env, |
| int | id | ||
| ) |
iterator alloc size routine
| 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. |
| int iter_init | ( | struct module_env * | env, |
| int | id | ||
| ) |
iterator init
| void iter_operate | ( | struct module_qstate * | qstate, |
| enum module_ev | event, | ||
| int | id, | ||
| struct outbound_entry * | outbound | ||
| ) |
iterator operate on a query
| int iter_state_is_responsestate | ( | enum iter_state | s | ) |
See if iterator state is a response state
| s | to inspect |
| const char* iter_state_to_string | ( | enum iter_state | state | ) |
Get iterator state as a string
| state | to convert |