tor  0.4.1.0-alpha-dev
Data Fields
edge_connection_t Struct Reference

#include <edge_connection_st.h>

Data Fields

connection_t base_
 
struct edge_connection_tnext_stream
 
int package_window
 
int deliver_window
 
struct circuit_ton_circuit
 
struct crypt_path_tcpath_layer
 
rend_data_trend_data
 
struct hs_ident_edge_conn_ths_ident
 
uint32_t address_ttl
 
uint32_t begincell_flags
 
streamid_t stream_id
 
uint16_t end_reason
 
uint32_t n_read
 
uint32_t n_written
 
unsigned int is_dns_request:1
 
unsigned int is_reverse_dns_lookup:1
 
unsigned int edge_has_sent_end:1
 
unsigned int edge_blocked_on_circ:1
 
uint64_t dirreq_id
 

Detailed Description

Subtype of connection_t for an "edge connection" – that is, an entry (ap) connection, or an exit.

Definition at line 16 of file edge_connection_st.h.

Field Documentation

◆ address_ttl

uint32_t edge_connection_t::address_ttl

TTL for address-to-addr mapping on exit connection. Exit connections only.

Definition at line 40 of file edge_connection_st.h.

◆ cpath_layer

struct crypt_path_t* edge_connection_t::cpath_layer

A pointer to which node in the circ this conn exits at. Set for AP connections and for hidden service exit connections.

Definition at line 30 of file edge_connection_st.h.

Referenced by circuit_resume_edge_reading_helper(), connection_ap_get_begincell_flags(), connection_edge_send_command(), and relay_lookup_conn().

◆ deliver_window

int edge_connection_t::deliver_window

How many more relay cells can end at me?

Definition at line 23 of file edge_connection_st.h.

◆ dirreq_id

uint64_t edge_connection_t::dirreq_id

Unique ID for directory requests; this used to be in connection_t, but that's going away and being used on channels instead. We still tag edge connections with dirreq_id from circuits, so it's copied here.

Definition at line 73 of file edge_connection_st.h.

◆ edge_blocked_on_circ

unsigned int edge_connection_t::edge_blocked_on_circ

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

Definition at line 68 of file edge_connection_st.h.

Referenced by set_streams_blocked_on_circ().

◆ edge_has_sent_end

unsigned int edge_connection_t::edge_has_sent_end

For debugging; only used on edge connections. Set once we've set the stream end, and check in connection_about_to_close_connection().

Definition at line 62 of file edge_connection_st.h.

Referenced by connection_edge_about_to_close(), connection_edge_end(), and MOCK_IMPL().

◆ end_reason

uint16_t edge_connection_t::end_reason

The reason why this connection is closing; passed to the controller.

Definition at line 49 of file edge_connection_st.h.

◆ is_dns_request

unsigned int edge_connection_t::is_dns_request

True iff this connection is for a DNS request only.

Definition at line 58 of file edge_connection_st.h.

◆ is_reverse_dns_lookup

unsigned int edge_connection_t::is_reverse_dns_lookup

True iff this connection is for a PTR DNS request. (exit only)

Definition at line 60 of file edge_connection_st.h.

◆ n_read

uint32_t edge_connection_t::n_read

Bytes read since last call to control_event_stream_bandwidth_used()

Definition at line 52 of file edge_connection_st.h.

◆ n_written

uint32_t edge_connection_t::n_written

Bytes written since last call to control_event_stream_bandwidth_used()

Definition at line 55 of file edge_connection_st.h.

◆ next_stream

struct edge_connection_t* edge_connection_t::next_stream

◆ on_circuit

struct circuit_t* edge_connection_t::on_circuit

◆ package_window

int edge_connection_t::package_window

How many more relay cells can I send into the circuit?

Definition at line 21 of file edge_connection_st.h.

Referenced by circuit_resume_edge_reading_helper().

◆ rend_data

rend_data_t* edge_connection_t::rend_data

What rendezvous service are we querying for (if an AP) or providing (if an exit)?

Definition at line 33 of file edge_connection_st.h.

Referenced by circuit_matches_with_rend_stream(), and MOCK_IMPL().

◆ stream_id

streamid_t edge_connection_t::stream_id

Flags sent or received in the BEGIN cell for this connection The stream ID used for this edge connection on its circuit

Definition at line 45 of file edge_connection_st.h.

Referenced by connection_ap_handshake_send_resolve(), connection_exit_begin_resolve(), connection_half_edge_add(), MOCK_IMPL(), relay_lookup_conn(), and set_streams_blocked_on_circ().


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