#include <iterator.h>
Data Fields | |
enum iter_state | state |
State of the iterator module. | |
enum iter_state | final_state |
Final state for the iterator module. | |
int | depth |
The depth of this query, this means the depth of recursion. | |
struct dns_msg * | response |
The response. | |
struct iter_prep_list * | an_prepend_list |
This is a list of RRsets that must be prepended to the ANSWER section of a response before being sent upstream. | |
struct iter_prep_list * | an_prepend_last |
Last element of the prepend list. | |
struct iter_prep_list * | ns_prepend_list |
This is the list of RRsets that must be prepended to the AUTHORITY section of the response before being sent upstream. | |
struct iter_prep_list * | ns_prepend_last |
Last element of the authority prepend list. | |
struct query_info | qchase |
query name used for chasing the results. | |
uint16_t | chase_flags |
query flags to use when chasing the answer (i.e. | |
int | chase_to_rd |
true if we set RD bit because of last resort recursion lame query | |
struct delegpt * | dp |
This is the current delegation point for an in-progress query. | |
int | caps_fallback |
state for 0x20 fallback when capsfail happens, 0 not a fallback | |
size_t | caps_server |
state for capsfail: current server number to try | |
struct reply_info * | caps_reply |
state for capsfail: stored query for comparisons | |
struct dns_msg * | deleg_msg |
Current delegation message - returned for non-RD queries. | |
int | num_target_queries |
number of outstanding target sub queries | |
int | num_current_queries |
outstanding direct queries | |
int | query_restart_count |
the number of times this query has been restarted. | |
int | referral_count |
the number of times this query as followed a referral. | |
int | dnssec_expected |
expected dnssec information for this iteration step. | |
int | wait_priming_stub |
This is flag that, if true, means that this event is waiting for a stub priming query. | |
int | refetch_glue |
This is a flag that, if true, means that this query is for (re)fetching glue from a zone. | |
struct outbound_list | outlist |
list of pending queries to authoritative servers. |
State of the iterator module.
This is the state that event is in or should sent to -- all requests should start with the INIT_REQUEST_STATE. All responses should start with QUERY_RESP_STATE. Subsequent processing of the event will change this state.
Referenced by error_supers(), generate_sub_request(), iter_handle(), iter_new(), next_state(), prime_supers(), process_request(), process_response(), and processQueryTargets().
Final state for the iterator module.
This is the state that responses should be routed to once the response is final. For externally initiated queries, this will be FINISHED_STATE, locally initiated queries will have different final states.
Referenced by final_state(), generate_sub_request(), iter_new(), and process_request().
The depth of this query, this means the depth of recursion.
This address is needed for another query, which is an address needed for another query, etc. Original client query has depth 0.
Referenced by generate_sub_request(), iter_new(), processInitRequest(), and processQueryTargets().
struct query_info iter_qstate::qchase [read] |
query name used for chasing the results.
Initially the same as the state qinfo, but after CNAMEs this will be different. The query info used to elicit the results needed.
Referenced by forward_request(), generate_ns_check(), generate_sub_request(), handle_cname_response(), iter_new(), process_response(), processInitRequest(), processInitRequest2(), processInitRequest3(), processPrimeResponse(), processQueryResponse(), processQueryTargets(), processTargetResponse(), and query_for_targets().
uint16_t iter_qstate::chase_flags |
query flags to use when chasing the answer (i.e.
RD flag)
Referenced by forward_request(), generate_sub_request(), iter_new(), processInitRequest3(), processQueryResponse(), and processQueryTargets().
struct delegpt* iter_qstate::dp [read] |
This is the current delegation point for an in-progress query.
This object retains state as to which delegation targets need to be (sub)queried for vs which ones have already been visited.
Referenced by error_supers(), forward_request(), generate_a_aaaa_check(), generate_ns_check(), generate_target_query(), iter_new(), prime_root(), prime_stub(), prime_supers(), process_response(), processInitRequest(), processInitRequest3(), processPrimeResponse(), processQueryResponse(), processQueryTargets(), and query_for_targets().
the number of times this query has been restarted.
Referenced by iter_new(), processInitRequest(), and processQueryResponse().
the number of times this query as followed a referral.
Referenced by iter_new(), processQueryResponse(), and processQueryTargets().
expected dnssec information for this iteration step.
If dnssec rrsigs are expected and not given, the server is marked lame (dnssec-lame).
Referenced by generate_target_query(), iter_new(), prime_root(), prime_stub(), processInitRequest3(), processQueryResponse(), and processQueryTargets().
This is a flag that, if true, means that this query is for (re)fetching glue from a zone.
Since the address should have been glue, query again to the servers that should have been returning it as glue. The delegation point must be set to the one that should *not* be used when creating the state. A higher one will be attempted.
Referenced by generate_ns_check(), generate_sub_request(), generate_target_query(), iter_new(), and processInitRequest().
struct outbound_list iter_qstate::outlist [read] |
list of pending queries to authoritative servers.
Referenced by generate_sub_request(), iter_clear(), iter_new(), process_response(), processQueryResponse(), and processQueryTargets().