unbound: waiting_tcp Struct Reference

unbound 0.1

Data Fields
waiting_tcp Struct Reference

Query waiting for TCP buffer. More...

`#include <outside_network.h>`

## Data Fields
struct waiting_tcp * | next_waiting
| next in waiting list.
int | on_tcp_waiting_list
| if true the item is on the tcp waiting list and next_waiting is used for that.
struct waiting_tcp * | write_wait_prev
| next and prev in query waiting list for stream connection
struct waiting_tcp * | write_wait_next
int | write_wait_queued
| true if the waiting_tcp structure is on the write_wait queue
rbnode_type | id_node
| entry in reuse.tree_by_id, if key is NULL, not in tree, otherwise, this struct is key and sorted by ID (from waiting_tcp.id).
uint16_t | id
| the ID for the query; checked in reply
struct comm_timer * | timer
| timeout event; timer keeps running whether the query is waiting for a buffer or the tcp reply is pending
int | timeout
| timeout in msec
struct outside_network * | outnet
| the outside network it is part of
struct sockaddr_storage | addr
| remote address.
socklen_t | addrlen
| length of addr field in use.
uint8_t * | pkt
| The query itself, the query packet to send.
size_t | pkt_len
| length of query packet.
comm_point_callback_type * | cb
| callback for the timeout, error or reply to the message, or NULL if no user is waiting.
void * | cb_arg
| callback user argument
int | ssl_upstream
| if it uses ssl upstream
char * | tls_auth_name
| ref to the tls_auth_name from the serviced_query
int | error_count
| the packet was involved in an error, to stop looping errors
int | in_cb_and_decommission
| if true, the item is at the cb_and_decommission stage

## Detailed Description

Query waiting for TCP buffer.

## Field Documentation

## ◆ next_waiting

struct waiting_tcp* waiting_tcp::next_waiting

next in waiting list.

if on_tcp_waiting_list==0, this points to the pending_tcp structure.

Referenced by check_waiting_tcp_removal(), outnet_get_mem(), outnet_tcp_take_into_use(), outnet_tcptimer(), outnet_waiting_tcp_list_add(), outnet_waiting_tcp_list_add_first(), outnet_waiting_tcp_list_pop(), outnet_waiting_tcp_list_remove(), outside_network_delete(), pending_tcp_query(), reuse_tcp_remove_serviced_keep(), serviced_delete(), serviced_tcp_callback(), tcpid_addmore(), use_free_buffer(), and waiting_tcp_list_clear().

## ◆ on_tcp_waiting_list

int waiting_tcp::on_tcp_waiting_list

if true the item is on the tcp waiting list and next_waiting is used for that.

If false, the next_waiting points to the pending_tcp

Referenced by check_waiting_tcp_removal(), outnet_tcp_cb(), outnet_tcptimer(), outnet_waiting_tcp_list_add(), outnet_waiting_tcp_list_add_first(), outnet_waiting_tcp_list_pop(), outnet_waiting_tcp_list_remove(), pending_tcp_query(), serviced_delete(), serviced_tcp_callback(), and waiting_tcp_list_clear().

## ◆ pkt

uint8_t* waiting_tcp::pkt

The query itself, the query packet to send.

allocated after the waiting_tcp structure.

Referenced by outnet_tcp_cb(), outnet_tcp_take_into_use(), outnet_tcp_take_query_setup(), pending_tcp_query(), reuse_move_writewait_away(), and use_free_buffer().

## ◆ cb

comm_point_callback_type* waiting_tcp::cb

callback for the timeout, error or reply to the message, or NULL if no user is waiting.

the entry uses an ID number. a query that was written is no longer needed, but the ID number and a reply will come back and can be ignored if NULL

Referenced by mark_for_cb_and_decommission(), pending_tcp_query(), reuse_tcp_remove_serviced_keep(), serviced_delete(), and waiting_tcp_callback().

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

- services/outside_network.h