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 | |
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.
current status
| 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().
| 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().
| 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().