Tor
0.4.7.0-alpha-dev
|
#include <or_connection_st.h>
Data Fields | |
connection_t | base_ |
char | identity_digest [DIGEST_LEN] |
char * | ext_or_conn_id |
char * | ext_or_auth_correct_client_hash |
char * | ext_or_transport |
char * | nickname |
struct tor_tls_t * | tls |
int | tls_error |
channel_tls_t * | chan |
tor_addr_port_t | canonical_orport |
unsigned int | is_canonical:1 |
unsigned int | is_outgoing:1 |
unsigned int | proxy_type:3 |
unsigned int | wide_circ_ids:1 |
unsigned int | potentially_used_for_bootstrapping:1 |
unsigned int | have_noted_bootstrap_problem:1 |
unsigned int | tracked_for_dos_mitigation: 1 |
unsigned int | is_pt: 1 |
uint16_t | link_proto |
uint16_t | idle_timeout |
or_handshake_state_t * | handshake_state |
time_t | timestamp_lastempty |
token_bucket_rw_t | bucket |
uint64_t | bytes_xmitted |
uint64_t | bytes_xmitted_by_tls |
Subtype of connection_t for an "OR connection" – that is, one that speaks cells over TLS.
Definition at line 22 of file or_connection_st.h.
token_bucket_rw_t bucket |
Used for rate limiting when the connection is in state CONN_OPEN.
Definition at line 103 of file or_connection_st.h.
Referenced by connection_or_update_token_buckets_helper().
tor_addr_port_t canonical_orport |
The "canonical" address and port for this relay's ORPort, if this is a known relay.
An ORPort is "canonical" in this sense only if it is the same ORPort that is listed for this identity in the consensus we have.
This field may be set on outbound connections for any relay, and on inbound connections after authentication. If we don't know the relay's identity, or if we don't have the relay's identity in our consensus, we leave this address as UNSPEC.
Definition at line 64 of file or_connection_st.h.
channel_tls_t* chan |
When we last used this conn for any client traffic. If not recent, we can rate limit it further.
Definition at line 50 of file or_connection_st.h.
Referenced by channel_tls_handle_cell(), channel_tls_handle_state_change_on_orconn(), channel_tls_update_marks(), connection_or_about_to_close(), connection_or_change_state(), connection_or_check_canonicity(), connection_or_client_learned_peer_id(), connection_or_client_used(), connection_or_flushed_some(), connection_or_get_alleged_ed25519_id(), connection_or_get_num_circuits(), connection_or_is_bad_for_new_circs(), connection_or_notify_error(), connection_or_set_identity_digest(), and connection_tls_start_handshake().
char* ext_or_auth_correct_client_hash |
This is the ClientHash value we expect to receive from the client during the Extended ORPort authentication protocol. We compute it upon receiving the ClientNoce from the client, and we compare it with the actual ClientHash value sent by the client.
Definition at line 36 of file or_connection_st.h.
char* ext_or_conn_id |
Extended ORPort connection identifier.
Definition at line 30 of file or_connection_st.h.
Referenced by connection_or_set_ext_or_identifier().
char* ext_or_transport |
String carrying the name of the pluggable transport (e.g. "obfs2") that is obfuscating this connection. If no pluggable transports are used, it's NULL.
Definition at line 40 of file or_connection_st.h.
or_handshake_state_t* handshake_state |
If we are setting this connection up, state information to do so.
Definition at line 98 of file or_connection_st.h.
Referenced by connection_init_or_handshake_state(), connection_or_compute_authenticate_cell_body(), connection_or_nonopen_was_started_here(), connection_or_send_auth_challenge_cell(), connection_or_send_certs_cell(), connection_or_send_netinfo(), and connection_or_send_versions().
unsigned int have_noted_bootstrap_problem |
True iff this connection has had its bootstrap failure logged with control_event_bootstrap_problem.
Definition at line 84 of file or_connection_st.h.
Referenced by control_event_bootstrap_prob_or().
char identity_digest[DIGEST_LEN] |
Hash of the public RSA key for the other side's identity key, or zeroes if the other side hasn't shown us a valid identity key.
Definition at line 27 of file or_connection_st.h.
Referenced by connection_or_check_canonicity(), connection_or_clear_identity(), connection_or_client_learned_peer_id(), connection_or_update_token_buckets_helper(), and orconn_target_get_name().
uint16_t idle_timeout |
How long can this connection sit with no circuits on it before we close it? Based on IDLE_CIRCUIT_TIMEOUT_{NON,}CANONICAL and on is_canonical, randomized.
Definition at line 94 of file or_connection_st.h.
unsigned int is_canonical |
Should this connection be used for extending circuits to the server matching the identity_digest field? Set to true if we're pretty sure we aren't getting MITMed, either because we're connected to an address listed in a server descriptor, or because an authenticated NETINFO cell listed the address we're connected to as recognized.
Definition at line 71 of file or_connection_st.h.
Referenced by connection_or_group_set_badness_().
unsigned int is_outgoing |
True iff this is an outgoing connection.
Definition at line 74 of file or_connection_st.h.
unsigned int is_pt |
True iff this connection is using a pluggable transport
Definition at line 90 of file or_connection_st.h.
uint16_t link_proto |
What protocol version are we using? 0 for "none negotiated yet."
Definition at line 92 of file or_connection_st.h.
Referenced by connection_fetch_var_cell_from_buf().
char* nickname |
Nickname of OR on other side (if any).
Definition at line 42 of file or_connection_st.h.
unsigned int potentially_used_for_bootstrapping |
True iff a failure on this connection indicates a possible bootstrapping problem. We set this as true if we notice that this connection could handle a pending origin circuit, or if we launch it to handle an origin circuit.
Definition at line 81 of file or_connection_st.h.
Referenced by control_event_bootstrap_prob_or().
unsigned int proxy_type |
One of PROXY_NONE...PROXY_HAPROXY
Definition at line 75 of file or_connection_st.h.
Referenced by connection_or_finished_connecting(), and connection_or_finished_flushing().
time_t timestamp_lastempty |
When was the outbuf last completely empty?
Definition at line 101 of file or_connection_st.h.
struct tor_tls_t* tls |
TLS connection state.
Definition at line 44 of file or_connection_st.h.
Referenced by connection_or_block_renegotiation(), connection_or_get_state_description(), connection_or_nonopen_was_started_here(), connection_or_send_certs_cell(), and connection_tls_start_handshake().
int tls_error |
Last tor_tls error code.
Definition at line 45 of file or_connection_st.h.
unsigned int tracked_for_dos_mitigation |
True iff this is a client connection and its address has been put in the geoip cache and handled by the DoS mitigation subsystem. We use this to insure we have a coherent count of concurrent connection.
Definition at line 88 of file or_connection_st.h.