unbound: serviced_query Struct Reference

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_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.
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 | nocaps
| ignore capsforid
int | tcp_upstream
| tcp upstream used, use tcp, or ssl_upstream for SSL
int | ssl_upstream
char * | tls_auth_name
| the name of the tls authentication name, eg.
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 message
int | edns_lame_known
| do we know edns probe status already, for UDP_EDNS queries
struct edns_option * | opt_list
| edns options to use for sending upstream packet
struct outside_network * | outnet
| outside network this is part of
struct service_callback * | cblist
| list of interested parties that need callback on results.
void * | pending
| the UDP or TCP query that is pending, see status which
size_t | padding_block_size
| block size with which to pad encrypted queries (default: 128)
struct regional * | region
| region for this serviced query.
struct alloc_cache * | alloc
| allocation service for the region
struct comm_timer * | timer
| flash timer to start the net I/O as a separate event
int | busy
| true if serviced_query is currently doing net I/O and may block

## 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

enum serviced_query::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_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(), serviced_callbacks(), serviced_cmp(), serviced_create(), serviced_encode(), serviced_tcp_callback(), and serviced_udp_callback().

## ◆ tls_auth_name

char* serviced_query::tls_auth_name

the name of the tls authentication name, eg.

'ns.example.com' or NULL

Referenced by pending_tcp_query(), and serviced_create().

## ◆ region

struct regional* serviced_query::region

region for this serviced query.

Will be cleared when this serviced_query will be deleted

Referenced by outnet_serviced_query(), serviced_callbacks(), serviced_create(), and serviced_node_del().

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

- services/outside_network.h