edge_connection_t Struct Reference

#include <or.h>


Data Fields

connection_t _base
struct edge_connection_tnext_stream
struct crypt_path_tcpath_layer
int package_window
int deliver_window
char * chosen_exit_name
socks_request_tsocks_request
struct circuit_ton_circuit
uint32_t address_ttl
streamid_t stream_id
uint16_t end_reason
uint32_t n_read
uint32_t n_written
rend_data_trend_data
uint8_t num_socks_retries
unsigned int is_dns_request:1
unsigned int want_onehop:1
unsigned int use_begindir:1
unsigned int edge_has_sent_end:1
unsigned int edge_blocked_on_circ:1
unsigned int chosen_exit_optional:1
unsigned int chosen_exit_retries:3
struct evdns_server_request * dns_server_request


Detailed Description

Subtype of connection_t for an "edge connection" -- that is, a socks (ap) connection, or an exit.

Field Documentation

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.

Referenced by compute_retry_timeout(), and connection_ap_expire_beginning().

True iff this connection is for a DNS request only.

Referenced by connection_ap_handshake_socks_resolved(), control_event_stream_status(), dnsserv_launch_request(), and evdns_server_callback().

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

Referenced by circuit_get_open_circ_or_launch(), circuit_is_acceptable(), connection_ap_fail_onehop(), connection_ap_handshake_attach_circuit(), and connection_ap_make_link().

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).

Referenced by circuit_get_open_circ_or_launch(), connection_ap_can_use_exit(), connection_ap_detach_retriable(), connection_ap_handshake_attach_chosen_circuit(), connection_ap_handshake_send_begin(), connection_ap_make_link(), and control_event_stream_status().

True iff we've blocked reading until the circuit has fewer queued cells.

Referenced by set_streams_blocked_on_circ().

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

Referenced by assert_connection_ok(), circuit_discard_optional_exit_enclaves(), circuit_get_open_circ_or_launch(), connection_ap_handshake_attach_circuit(), and connection_ap_process_end_not_open().

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.

Referenced by assert_connection_ok(), circuit_discard_optional_exit_enclaves(), and connection_ap_process_end_not_open().

struct evdns_server_request* edge_connection_t::dns_server_request [read]

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

Referenced by connection_about_to_close_connection(), connection_ap_handshake_socks_resolved(), dnsserv_reject_request(), dnsserv_resolved(), and evdns_server_callback().


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

Generated on Tue May 25 00:31:12 2010 for tor by  doxygen 1.5.6