tor
master
|
#include <or.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 |
tor_tls_t * | tls |
int | tls_error |
channel_tls_t * | chan |
tor_addr_t | real_addr |
unsigned int | is_canonical:1 |
unsigned int | is_outgoing:1 |
unsigned int | proxy_type:2 |
unsigned int | wide_circ_ids:1 |
unsigned int | have_noted_bootstrap_problem:1 |
unsigned int | tracked_for_dos_mitigation: 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.
token_bucket_rw_t bucket |
Used for rate limiting when the connection is in state CONN_OPEN.
channel_tls_t* chan |
When we last used this conn for any client traffic. If not recent, we can rate limit it further.
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 acual ClientHash value sent by the client.
char* ext_or_conn_id |
Extended ORPort connection 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.
or_handshake_state_t* handshake_state |
If we are setting this connection up, state information to do so.
unsigned int have_noted_bootstrap_problem |
True iff this connection has had its bootstrap failure logged with control_event_bootstrap_problem.
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.
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.
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.
unsigned int is_outgoing |
True iff this is an outgoing connection.
uint16_t link_proto |
What protocol version are we using? 0 for "none negotiated yet."
char* nickname |
Nickname of OR on other side (if any).
unsigned int proxy_type |
One of PROXY_NONE...PROXY_SOCKS5
tor_addr_t real_addr |
The actual address that this connection came from or went to. The addr field is prone to getting overridden by the address from the router descriptor matching identity_digest.
time_t timestamp_lastempty |
When was the outbuf last completely empty?
tor_tls_t* tls |
TLS connection state.
int tls_error |
Last tor_tls error code.
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.