Electroneum
outside_network Struct Reference

#include <outside_network.h>

Collaboration diagram for outside_network:

Public Attributes

struct comm_basebase
 
time_t * now_secs
 
struct timeval * now_tv
 
struct sldns_bufferudp_buff
 
size_t svcd_overhead
 
int use_caps_for_id
 
int want_to_quit
 
size_t unwanted_replies
 
size_t unwanted_total
 
size_t unwanted_threshold
 
void(* unwanted_action )(void *)
 
void * unwanted_param
 
struct port_communused_fds
 
int do_udp
 
int delayclose
 
struct timeval delay_tv
 
struct port_ifip4_ifs
 
int num_ip4
 
struct port_ifip6_ifs
 
int num_ip6
 
struct pendingudp_wait_first
 
struct pendingudp_wait_last
 
rbtree_typepending
 
rbtree_typeserviced
 
struct infra_cacheinfra
 
struct ub_randstate * rnd
 
void * sslctx
 
int tcp_mss
 
struct pending_tcp ** tcp_conns
 
size_t num_tcp
 
size_t num_tcp_outgoing
 
struct pending_tcptcp_free
 
struct waiting_tcptcp_wait_first
 
struct waiting_tcptcp_wait_last
 

Detailed Description

Send queries to outside servers and wait for answers from servers. Contains answer-listen sockets.

Definition at line 70 of file outside_network.h.

Member Data Documentation

◆ base

struct comm_base* outside_network::base

Base for select calls

Definition at line 72 of file outside_network.h.

◆ delay_tv

struct timeval outside_network::delay_tv

timeout for delayclose

Definition at line 108 of file outside_network.h.

◆ delayclose

int outside_network::delayclose

if udp is delay-closed (delayed answers do not meet closed port)

Definition at line 106 of file outside_network.h.

◆ do_udp

int outside_network::do_udp

if udp is done

Definition at line 104 of file outside_network.h.

◆ infra

struct infra_cache* outside_network::infra

host cache, pointer but not owned by outnet.

Definition at line 130 of file outside_network.h.

◆ ip4_ifs

struct port_if* outside_network::ip4_ifs

array of outgoing IP4 interfaces

Definition at line 111 of file outside_network.h.

◆ ip6_ifs

struct port_if* outside_network::ip6_ifs

array of outgoing IP6 interfaces

Definition at line 116 of file outside_network.h.

◆ now_secs

time_t* outside_network::now_secs

pointer to time in seconds

Definition at line 74 of file outside_network.h.

◆ now_tv

struct timeval* outside_network::now_tv

pointer to time in microseconds

Definition at line 76 of file outside_network.h.

◆ num_ip4

int outside_network::num_ip4

number of outgoing IP4 interfaces

Definition at line 113 of file outside_network.h.

◆ num_ip6

int outside_network::num_ip6

number of outgoing IP6 interfaces

Definition at line 118 of file outside_network.h.

◆ num_tcp

size_t outside_network::num_tcp

number of tcp communication points.

Definition at line 150 of file outside_network.h.

◆ num_tcp_outgoing

size_t outside_network::num_tcp_outgoing

number of tcp communication points in use.

Definition at line 152 of file outside_network.h.

◆ pending

rbtree_type* outside_network::pending

pending udp answers. sorted by id, addr

Definition at line 126 of file outside_network.h.

◆ rnd

struct ub_randstate* outside_network::rnd

where to get random numbers

Definition at line 132 of file outside_network.h.

◆ serviced

rbtree_type* outside_network::serviced

serviced queries, sorted by qbuf, addr, dnssec

Definition at line 128 of file outside_network.h.

◆ sslctx

void* outside_network::sslctx

ssl context to create ssl wrapped TCP with DNS connections

Definition at line 134 of file outside_network.h.

◆ svcd_overhead

size_t outside_network::svcd_overhead

serviced_callbacks malloc overhead when processing multiple identical serviced queries to the same server.

Definition at line 83 of file outside_network.h.

◆ tcp_conns

struct pending_tcp** outside_network::tcp_conns

Array of tcp pending used for outgoing TCP connections. Each can be used to establish a TCP connection with a server. The file descriptors are -1 if they are free, and need to be opened for the tcp connection. Can be used for ip4 and ip6.

Definition at line 148 of file outside_network.h.

◆ tcp_free

struct pending_tcp* outside_network::tcp_free

list of tcp comm points that are free for use

Definition at line 154 of file outside_network.h.

◆ tcp_mss

int outside_network::tcp_mss

maximum segment size of tcp socket

Definition at line 140 of file outside_network.h.

◆ tcp_wait_first

struct waiting_tcp* outside_network::tcp_wait_first

list of tcp queries waiting for a buffer

Definition at line 156 of file outside_network.h.

◆ tcp_wait_last

struct waiting_tcp* outside_network::tcp_wait_last

last of waiting query list

Definition at line 158 of file outside_network.h.

◆ udp_buff

struct sldns_buffer* outside_network::udp_buff

buffer shared by UDP connections, since there is only one datagram at any time.

Definition at line 80 of file outside_network.h.

◆ udp_wait_first

struct pending* outside_network::udp_wait_first

pending udp queries waiting to be sent out, waiting for fd

Definition at line 121 of file outside_network.h.

◆ udp_wait_last

struct pending* outside_network::udp_wait_last

last pending udp query in list

Definition at line 123 of file outside_network.h.

◆ unused_fds

struct port_comm* outside_network::unused_fds

linked list of available commpoints, unused file descriptors, for use as outgoing UDP ports. cp.fd=-1 in them.

Definition at line 102 of file outside_network.h.

◆ unwanted_action

void(* outside_network::unwanted_action) (void *)

what action to take, called when defensive action is needed

Definition at line 96 of file outside_network.h.

◆ unwanted_param

void* outside_network::unwanted_param

user param for action

Definition at line 98 of file outside_network.h.

◆ unwanted_replies

size_t outside_network::unwanted_replies

number of unwanted replies received (for statistics)

Definition at line 90 of file outside_network.h.

◆ unwanted_threshold

size_t outside_network::unwanted_threshold

threshold when to take defensive action. If 0 then never.

Definition at line 94 of file outside_network.h.

◆ unwanted_total

size_t outside_network::unwanted_total

cumulative total of unwanted replies (for defense)

Definition at line 92 of file outside_network.h.

◆ use_caps_for_id

int outside_network::use_caps_for_id

use x20 bits to encode additional ID random bits

Definition at line 85 of file outside_network.h.

◆ want_to_quit

int outside_network::want_to_quit

outside network wants to quit. Stop queued msgs from sent.

Definition at line 87 of file outside_network.h.


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