module_qstate Struct Reference

Module state, per query. More...

#include <module.h>

Data Fields

struct query_info qinfo
 which query is being answered: name, type, class
uint16_t query_flags
 flags uint16 from query
int is_priming
 if this is a (stub or root) priming query (with hints)
int is_valrec
 if this is a validation recursion query that does not get validation itself
struct comm_replyreply
 comm_reply contains server replies
struct dns_msgreturn_msg
 the reply message, with message for client and calling module
int return_rcode
 the rcode, in case of error, instead of a reply message
struct sock_listreply_origin
 origin of the reply (can be NULL from cache, list for cnames)
struct sock_listblacklist
 IP blacklist for queries.
struct regionalregion
 region for this query. More...
struct errinf_strlisterrinf
 failure reason information if val-log-level is high
int curmod
 which module is executing
enum module_ext_state ext_state [MAX_MODULE]
 module states
void * minfo [MAX_MODULE]
 module specific data for query. More...
struct module_envenv
 environment for this query
struct mesh_statemesh_info
 mesh related information for this query
time_t prefetch_leeway
 how many seconds before expiry is this prefetched (0 if not)
struct serve_expired_dataserve_expired_data
 serve expired data
struct edns_optionedns_opts_front_in
 incoming edns options from the front end
struct edns_optionedns_opts_back_out
 outgoing edns options to the back end
struct edns_optionedns_opts_back_in
 incoming edns options from the back end
struct edns_optionedns_opts_front_out
 outgoing edns options to the front end
int no_cache_lookup
 whether modules should answer from the cache
int no_cache_store
 whether modules should store answer in the cache
int need_refetch
 whether to refetch a fresh answer on finishing this state
int was_ratelimited
 whether the query (or a subquery) was ratelimited
time_t qstarttime
 time when query was started. More...
int is_cachedb_answer
 whether a message from cachedb will be used for the reply
struct respip_client_infoclient_info
 Attributes of clients that share the qstate that may affect IP-based actions.
struct respip_action_inforespip_action_info
 Extended result of response-ip action processing, mainly for logging purposes.
int rpz_passthru
 if the query is rpz passthru, no further rpz processing for it
int tcp_required
int is_drop
 whether the reply should be dropped

Detailed Description

Module state, per query.

Field Documentation

◆ region

◆ minfo

◆ qstarttime

time_t module_qstate::qstarttime

time when query was started.

This is when the qstate is created. This is used so that type NS data cannot be overwritten by them expiring while the lookup is in progress, using data fetched from those servers. By comparing expiry time with qstarttime for type NS.

Referenced by storeQueryInCache().

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