Tor  0.4.7.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
 
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 21 of file edge_connection_st.h.

Field Documentation

◆ address_ttl

uint32_t address_ttl

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

Definition at line 42 of file edge_connection_st.h.

Referenced by send_resolved_cell(), and set_exitconn_info_from_resolve().

◆ cpath_layer

struct crypt_path_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 35 of file edge_connection_st.h.

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

◆ deliver_window

int deliver_window

How many more relay cells can end at me?

Definition at line 28 of file edge_connection_st.h.

◆ dirreq_id

uint64_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 75 of file edge_connection_st.h.

◆ edge_blocked_on_circ

unsigned int edge_blocked_on_circ

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

Definition at line 70 of file edge_connection_st.h.

Referenced by set_streams_blocked_on_circ().

◆ edge_has_sent_end

unsigned int 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 64 of file edge_connection_st.h.

Referenced by connection_edge_about_to_close(), and connection_edge_end().

◆ end_reason

uint16_t end_reason

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

Definition at line 51 of file edge_connection_st.h.

◆ is_dns_request

unsigned int is_dns_request

True iff this connection is for a DNS request only.

Definition at line 60 of file edge_connection_st.h.

◆ is_reverse_dns_lookup

unsigned int is_reverse_dns_lookup

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

Definition at line 62 of file edge_connection_st.h.

Referenced by set_exitconn_info_from_resolve().

◆ n_read

uint32_t n_read

Bytes read since last call to control_event_stream_bandwidth_used()

Definition at line 54 of file edge_connection_st.h.

◆ n_written

uint32_t n_written

Bytes written since last call to control_event_stream_bandwidth_used()

Definition at line 57 of file edge_connection_st.h.

◆ next_stream

struct edge_connection_t* next_stream

◆ on_circuit

struct circuit_t* on_circuit

◆ package_window

int package_window

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

Definition at line 26 of file edge_connection_st.h.

Referenced by circuit_resume_edge_reading_helper().

◆ stream_id

streamid_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 47 of file edge_connection_st.h.

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


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