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_t node
 The rbtree node, key is this record.
uint8_t * qbuf
 The query that needs to be answered.
size_t qbuflen
 length of qbuf.
int dnssec
 If an EDNS section is included, the DO/CD bit will be turned on.
int want_dnssec
 We want signatures, or else the answer is likely useless.
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.
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 outside_networkoutnet
 outside network this is part of
struct service_callbackcblist
 list of interested parties that need callback on results.
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

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

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_callbacks(), serviced_cmp(), serviced_create(), serviced_encode(), serviced_node_del(), and serviced_udp_callback().

size_t serviced_query::qbuflen
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().

socklen_t serviced_query::addrlen
struct service_callback* serviced_query::cblist

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