Electroneum
iter_qstate Struct Reference

#include <iterator.h>

Collaboration diagram for iter_qstate:

Public Attributes

enum iter_state state
 
enum iter_state final_state
 
int depth
 
struct dns_msgresponse
 
struct iter_prep_listan_prepend_list
 
struct iter_prep_listan_prepend_last
 
struct iter_prep_listns_prepend_list
 
struct iter_prep_listns_prepend_last
 
struct query_info qchase
 
uint16_t chase_flags
 
int chase_to_rd
 
struct delegptdp
 
int caps_fallback
 
size_t caps_server
 
struct reply_infocaps_reply
 
struct dns_msgcaps_response
 
struct dns_msgdeleg_msg
 
int num_target_queries
 
int num_current_queries
 
int query_restart_count
 
int referral_count
 
int sent_count
 
int * target_count
 
int ratelimit_ok
 
struct delegptstore_parent_NS
 
int query_for_pside_glue
 
struct ub_packed_rrset_keypside_glue
 
uint8_tdsns_point
 
size_t dsns_point_len
 
int dnssec_expected
 
int dnssec_lame_query
 
int wait_priming_stub
 
int refetch_glue
 
struct outbound_list outlist
 
enum minimisation_state minimisation_state
 
struct query_info qinfo_out
 
int minimise_count
 
int minimise_timeout_count
 
int auth_zone_response
 
int auth_zone_avoid
 

Detailed Description

Per query state for the iterator module.

Definition at line 217 of file iterator.h.

Member Data Documentation

◆ an_prepend_last

struct iter_prep_list* iter_qstate::an_prepend_last

Last element of the prepend list

Definition at line 254 of file iterator.h.

◆ an_prepend_list

struct iter_prep_list* iter_qstate::an_prepend_list

This is a list of RRsets that must be prepended to the ANSWER section of a response before being sent upstream.

Definition at line 252 of file iterator.h.

◆ auth_zone_avoid

int iter_qstate::auth_zone_avoid

True if the auth_zones should not be consulted for the query

Definition at line 394 of file iterator.h.

◆ auth_zone_response

int iter_qstate::auth_zone_response

True if the current response is from auth_zone

Definition at line 392 of file iterator.h.

◆ caps_fallback

int iter_qstate::caps_fallback

state for 0x20 fallback when capsfail happens, 0 not a fallback

Definition at line 281 of file iterator.h.

◆ caps_reply

struct reply_info* iter_qstate::caps_reply

state for capsfail: stored query for comparisons. Can be NULL if no response had been seen prior to starting the fallback.

Definition at line 286 of file iterator.h.

◆ caps_response

struct dns_msg* iter_qstate::caps_response

Definition at line 287 of file iterator.h.

◆ caps_server

size_t iter_qstate::caps_server

state for capsfail: current server number to try

Definition at line 283 of file iterator.h.

◆ chase_flags

uint16_t iter_qstate::chase_flags

query flags to use when chasing the answer (i.e. RD flag)

Definition at line 269 of file iterator.h.

◆ chase_to_rd

int iter_qstate::chase_to_rd

true if we set RD bit because of last resort recursion lame query

Definition at line 271 of file iterator.h.

◆ deleg_msg

struct dns_msg* iter_qstate::deleg_msg

Current delegation message - returned for non-RD queries

Definition at line 290 of file iterator.h.

◆ depth

int iter_qstate::depth

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.

Definition at line 241 of file iterator.h.

◆ dnssec_expected

int iter_qstate::dnssec_expected

expected dnssec information for this iteration step. If dnssec rrsigs are expected and not given, the server is marked lame (dnssec-lame).

Definition at line 344 of file iterator.h.

◆ dnssec_lame_query

int iter_qstate::dnssec_lame_query

We are expecting dnssec information, but we also know the server is DNSSEC lame. The response need not be marked dnssec-lame again.

Definition at line 350 of file iterator.h.

◆ dp

struct delegpt* iter_qstate::dp

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.

Definition at line 278 of file iterator.h.

◆ dsns_point

uint8_t* iter_qstate::dsns_point

If nonNULL we are walking upwards from DS query to find NS

Definition at line 335 of file iterator.h.

◆ dsns_point_len

size_t iter_qstate::dsns_point_len

length of the dname in dsns_point

Definition at line 337 of file iterator.h.

◆ final_state

enum iter_state iter_qstate::final_state

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.

Definition at line 234 of file iterator.h.

◆ minimisation_state

enum minimisation_state iter_qstate::minimisation_state

QNAME minimisation state, RFC7816

Definition at line 372 of file iterator.h.

◆ minimise_count

int iter_qstate::minimise_count

Count number of QNAME minimisation iterations. Used to limit number of outgoing queries when QNAME minimisation is enabled.

Definition at line 384 of file iterator.h.

◆ minimise_timeout_count

int iter_qstate::minimise_timeout_count

Count number of time-outs. Used to prevent resolving failures when the QNAME minimisation QTYPE is blocked.

Definition at line 389 of file iterator.h.

◆ ns_prepend_last

struct iter_prep_list* iter_qstate::ns_prepend_last

Last element of the authority prepend list

Definition at line 262 of file iterator.h.

◆ ns_prepend_list

struct iter_prep_list* iter_qstate::ns_prepend_list

This is the list of RRsets that must be prepended to the AUTHORITY section of the response before being sent upstream.

Definition at line 260 of file iterator.h.

◆ num_current_queries

int iter_qstate::num_current_queries

outstanding direct queries

Definition at line 296 of file iterator.h.

◆ num_target_queries

int iter_qstate::num_target_queries

number of outstanding target sub queries

Definition at line 293 of file iterator.h.

◆ outlist

struct outbound_list iter_qstate::outlist

list of pending queries to authoritative servers.

Definition at line 369 of file iterator.h.

◆ pside_glue

struct ub_packed_rrset_key* iter_qstate::pside_glue

the parent-side-glue element (NULL if none, its first match)

Definition at line 332 of file iterator.h.

◆ qchase

struct query_info iter_qstate::qchase

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.

Definition at line 267 of file iterator.h.

◆ qinfo_out

struct query_info iter_qstate::qinfo_out

The query info that is sent upstream. Will be a subset of qchase when qname minimisation is enabled.

Definition at line 378 of file iterator.h.

◆ query_for_pside_glue

int iter_qstate::query_for_pside_glue

The query is for parent-side glue(A or AAAA) for a nameserver. If the item is seen as glue in a referral, and pside_glue is NULL, then it is stored in pside_glue for later. If it was never seen, at the end, then a negative caching element must be created.
The (data or negative) RR cache element then throttles retries.

Definition at line 330 of file iterator.h.

◆ query_restart_count

int iter_qstate::query_restart_count

the number of times this query has been restarted.

Definition at line 299 of file iterator.h.

◆ ratelimit_ok

int iter_qstate::ratelimit_ok

if true, already tested for ratelimiting and passed the test

Definition at line 312 of file iterator.h.

◆ referral_count

int iter_qstate::referral_count

the number of times this query as followed a referral.

Definition at line 302 of file iterator.h.

◆ refetch_glue

int iter_qstate::refetch_glue

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.

Definition at line 366 of file iterator.h.

◆ response

struct dns_msg* iter_qstate::response

The response

Definition at line 246 of file iterator.h.

◆ sent_count

int iter_qstate::sent_count

number of queries fired off

Definition at line 305 of file iterator.h.

◆ state

enum iter_state iter_qstate::state

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.

Definition at line 225 of file iterator.h.

◆ store_parent_NS

struct delegpt* iter_qstate::store_parent_NS

The query must store NS records from referrals as parentside RRs Enabled once it hits resolution problems, to throttle retries. If enabled it is the pointer to the old delegation point with the old retry counts for bad-nameserver-addresses.

Definition at line 320 of file iterator.h.

◆ target_count

int* iter_qstate::target_count

number of target queries spawned in [1], for this query and its subqueries, the malloced-array is shared, [0] refcount.

Definition at line 309 of file iterator.h.

◆ wait_priming_stub

int iter_qstate::wait_priming_stub

This is flag that, if true, means that this event is waiting for a stub priming query.

Definition at line 356 of file iterator.h.


The documentation for this struct was generated from the following file: