Tor 0.4.9.0-alpha-dev
Data Fields
entry_connection_t Struct Reference

#include <entry_connection_st.h>

Data Fields

struct edge_connection_t edge_
 
char * chosen_exit_name
 
socks_request_tsocks_request
 
entry_port_cfg_t entry_cfg
 
unsigned nym_epoch
 
char * original_dest_address
 
uint8_t num_socks_retries
 
struct buf_t * pending_optimistic_data
 
struct buf_t * sending_optimistic_data
 
struct evdns_server_request * dns_server_request
 
uint16_t marked_pending_circ_line
 
const char * marked_pending_circ_file
 
unsigned int num_circuits_launched:4
 
unsigned int want_onehop:1
 
unsigned int use_begindir:1
 
unsigned int chosen_exit_optional:1
 
unsigned int chosen_exit_retries:3
 
unsigned int is_transparent_ap:1
 
unsigned int may_use_optimistic_data: 1
 
unsigned int hs_with_pow_conn: 1
 

Detailed Description

Subtype of edge_connection_t for an "entry connection" – that is, a SOCKS connection, a DNS request, a TransPort connection or a NATD connection

Definition at line 19 of file entry_connection_st.h.

Field Documentation

◆ chosen_exit_name

char* chosen_exit_name

◆ chosen_exit_optional

unsigned int chosen_exit_optional

For AP connections only. If 1, and we fail to reach the chosen exit, stop requiring it.

Definition at line 83 of file entry_connection_st.h.

Referenced by circuit_discard_optional_exit_enclaves().

◆ chosen_exit_retries

unsigned int chosen_exit_retries

For AP connections only. If non-zero, this exit node was picked as a result of the TrackHostExit, and the value decrements every time we fail to complete a circuit to our chosen exit – if it reaches zero, abandon the associated mapaddress.

Definition at line 88 of file entry_connection_st.h.

Referenced by circuit_discard_optional_exit_enclaves().

◆ dns_server_request

struct evdns_server_request* dns_server_request

If this is a DNSPort connection, this field holds the pending DNS request that we're going to try to answer.

Definition at line 58 of file entry_connection_st.h.

Referenced by dnsserv_reject_request(), and dnsserv_resolved().

◆ edge_

struct edge_connection_t edge_

Definition at line 20 of file entry_connection_st.h.

◆ entry_cfg

entry_port_cfg_t entry_cfg

Definition at line 31 of file entry_connection_st.h.

◆ hs_with_pow_conn

unsigned int hs_with_pow_conn

True iff this is a connection to a HS that has PoW defenses enabled, so we know not to apply the usual SOCKS timeout.

Definition at line 102 of file entry_connection_st.h.

Referenced by connection_ap_expire_beginning(), and connection_ap_handshake_attach_circuit().

◆ is_transparent_ap

unsigned int is_transparent_ap

True iff this is an AP connection that came from a transparent or NATd connection

Definition at line 92 of file entry_connection_st.h.

◆ marked_pending_circ_file

const char* marked_pending_circ_file

Definition at line 64 of file entry_connection_st.h.

◆ marked_pending_circ_line

uint16_t marked_pending_circ_line

Definition at line 63 of file entry_connection_st.h.

◆ may_use_optimistic_data

unsigned int may_use_optimistic_data

For AP connections only: Set if this connection's target exit node allows optimistic data (that is, data sent on this stream before the exit has sent a CONNECTED cell) and we have chosen to use it.

Definition at line 98 of file entry_connection_st.h.

Referenced by circuit_detach_stream(), and connection_ap_supports_optimistic_data().

◆ num_circuits_launched

unsigned int num_circuits_launched

Number of times we've launched a circuit to handle this stream. If it gets too high, that could indicate an inconsistency between our "launch a circuit to handle this stream" logic and our "attach our stream to one of the available circuits" logic.

Definition at line 72 of file entry_connection_st.h.

◆ num_socks_retries

uint8_t num_socks_retries

Number of times we've reassigned this application connection to a new circuit. We keep track because the timeout is longer if we've already retried several times.

Definition at line 45 of file entry_connection_st.h.

Referenced by compute_retry_timeout().

◆ nym_epoch

unsigned nym_epoch

AP only: The newnym epoch in which we created this connection.

Definition at line 33 of file entry_connection_st.h.

Referenced by entry_connection_describe_status_for_controller().

◆ original_dest_address

char* original_dest_address

AP only: The original requested address before we rewrote it.

Definition at line 36 of file entry_connection_st.h.

Referenced by connection_edge_compatible_with_circuit(), and connection_edge_update_circuit_isolation().

◆ pending_optimistic_data

struct buf_t* pending_optimistic_data

For AP connections only: buffer for data that we have sent optimistically, which we might need to re-send if we have to retry this connection.

Definition at line 50 of file entry_connection_st.h.

◆ sending_optimistic_data

struct buf_t* sending_optimistic_data

Definition at line 54 of file entry_connection_st.h.

◆ socks_request

socks_request_t* socks_request

◆ use_begindir

unsigned int use_begindir

True iff this stream should use a BEGIN_DIR relay command to establish itself rather than BEGIN (either via onehop or via a whole circuit).

Definition at line 79 of file entry_connection_st.h.

Referenced by ap_stream_wants_exit_attention(), connection_ap_can_use_exit(), connection_ap_get_begincell_flags(), and connection_ap_handshake_attach_chosen_circuit().

◆ want_onehop

unsigned int want_onehop

True iff this stream must attach to a one-hop circuit (e.g. for begin_dir).

Definition at line 76 of file entry_connection_st.h.

Referenced by ap_stream_wants_exit_attention(), connection_ap_fail_onehop(), and connection_ap_handshake_attach_circuit().


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