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: