unbound  0.1
Public Types | Data Fields
serviced_query Struct Reference

Query service record. More...

#include <outside_network.h>

Public Types

enum  serviced_query_status {
  serviced_initial, serviced_query_UDP_EDNS, serviced_query_UDP, serviced_query_TCP_EDNS,
  serviced_query_TCP, serviced_query_PROBE_EDNS, serviced_query_UDP_EDNS_fallback, serviced_query_TCP_EDNS_fallback,
  serviced_query_UDP_EDNS_FRAG
}
 current status More...
 

Data Fields

rbnode_type node
 The rbtree node, key is this record.
 
uint8_t * qbuf
 The query that needs to be answered. More...
 
size_t qbuflen
 length of qbuf. More...
 
int dnssec
 If an EDNS section is included, the DO/CD bit will be turned on. More...
 
int want_dnssec
 We want signatures, or else the answer is likely useless.
 
int nocaps
 ignore capsforid
 
int tcp_upstream
 tcp upstream used, use tcp, or ssl_upstream for SSL
 
int ssl_upstream
 
struct sockaddr_storage addr
 where to send it
 
socklen_t addrlen
 length of addr field in use. More...
 
uint8_t * zone
 zone name, uncompressed domain name in wireformat
 
size_t zonelen
 length of zone name
 
int qtype
 qtype
 
enum serviced_query::serviced_query_status status
 variable with current status
 
int to_be_deleted
 true if serviced_query is scheduled for deletion already
 
int retry
 number of UDP retries
 
struct timeval last_sent_time
 time last UDP was sent
 
int last_rtt
 rtt of last (UDP) message
 
int edns_lame_known
 do we know edns probe status already, for UDP_EDNS queries
 
struct edns_optionopt_list
 edns options to use for sending upstream packet
 
struct outside_networkoutnet
 outside network this is part of
 
struct service_callbackcblist
 list of interested parties that need callback on results. More...
 
void * pending
 the UDP or TCP query that is pending, see status which
 

Detailed Description

Query service record.

Contains query and destination. UDP, TCP, EDNS are all tried. complete with retries and timeouts. A number of interested parties can receive a callback.

Member Enumeration Documentation

◆ serviced_query_status

current status

Enumerator
serviced_initial 

initial status

serviced_query_UDP_EDNS 

UDP with EDNS sent.

serviced_query_UDP 

UDP without EDNS sent.

serviced_query_TCP_EDNS 

TCP with EDNS sent.

serviced_query_TCP 

TCP without EDNS sent.

serviced_query_PROBE_EDNS 

probe to test EDNS lameness (EDNS is dropped)

serviced_query_UDP_EDNS_fallback 

probe to test noEDNS0 (EDNS gives FORMERRorNOTIMP)

serviced_query_TCP_EDNS_fallback 

probe to test TCP noEDNS0 (EDNS gives FORMERRorNOTIMP)

serviced_query_UDP_EDNS_FRAG 

send UDP query with EDNS1480 (or 1280)

Field Documentation

◆ qbuf

uint8_t* serviced_query::qbuf

The query that needs to be answered.

Starts with flags u16, then qdcount, ..., including qname, qtype, qclass. Does not include EDNS record.

Referenced by lookup_serviced(), outnet_serviced_query(), serviced_cmp(), serviced_create(), serviced_encode(), serviced_tcp_callback(), and serviced_udp_callback().

◆ qbuflen

size_t serviced_query::qbuflen

◆ dnssec

int serviced_query::dnssec

If an EDNS section is included, the DO/CD bit will be turned on.

Referenced by lookup_serviced(), serviced_cmp(), serviced_create(), and serviced_encode().

◆ addrlen

socklen_t serviced_query::addrlen

◆ cblist

struct service_callback* serviced_query::cblist

list of interested parties that need callback on results.

Referenced by callback_list_remove(), outnet_serviced_query(), outnet_serviced_query_stop(), serviced_callbacks(), serviced_create(), and serviced_get_mem().


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