Data Fields
dir_connection_t Struct Reference

#include <dir_connection_st.h>

Data Fields

connection_t base_
char * requested_resource
unsigned int dirconn_direct:1
uint8_t router_purpose
struct tor_compress_state_tcompress_state
struct hs_ident_dir_conn_ths_ident
struct circuit_guard_state_t * guard_state
char identity_digest [DIGEST_LEN]
uint64_t dirreq_id

Detailed Description

Subtype of connection_t for an "directory connection" – that is, an HTTP connection to retrieve or serve directory material.

Definition at line 16 of file dir_connection_st.h.

Field Documentation

◆ compress_state

struct tor_compress_state_t* dir_connection_t::compress_state

The compression object doing on-the-fly compression for spooled data.

Definition at line 36 of file dir_connection_st.h.

Referenced by connection_dir_buf_add(), and MOCK_IMPL().

◆ dirconn_direct

unsigned int dir_connection_t::dirconn_direct

Is this dirconn direct, or via Tor?

Definition at line 26 of file dir_connection_st.h.

◆ dirreq_id

uint64_t dir_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. The dirserver still needs this for the incoming side, so it's moved here.

Definition at line 56 of file dir_connection_st.h.

Referenced by connection_dir_finished_flushing().

◆ guard_state

struct circuit_guard_state_t* dir_connection_t::guard_state

If this is a one-hop connection, tracks the state of the directory guard for this connection (if any).

Definition at line 48 of file dir_connection_st.h.

Referenced by connection_dir_client_request_failed().

◆ identity_digest

char dir_connection_t::identity_digest[DIGEST_LEN]

Hash of the public RSA key for the directory server's signing key.

Definition at line 50 of file dir_connection_st.h.

Referenced by connection_dir_client_request_failed().

◆ rend_data

rend_data_t* dir_connection_t::rend_data

What rendezvous service are we querying for?

Definition at line 39 of file dir_connection_st.h.

Referenced by connection_dir_client_refetch_hsdesc_if_needed().

◆ requested_resource

char* dir_connection_t::requested_resource

Which 'resource' did we ask the directory for? This is typically the part of the URL string that defines, relative to the directory conn purpose, what thing we want. For example, in router descriptor downloads by descriptor digest, it contains "d/", then one or more +-separated fingerprints.

Definition at line 25 of file dir_connection_st.h.

Referenced by list_pending_fpsk_downloads().

◆ router_purpose

uint8_t dir_connection_t::router_purpose

If we're fetching descriptors, what router purpose shall we assign to them?

Definition at line 30 of file dir_connection_st.h.

◆ spool

smartlist_t* dir_connection_t::spool

List of spooled_resource_t for objects that we're spooling. We use it from back to front.

Definition at line 34 of file dir_connection_st.h.

Referenced by connection_dirserv_flushed_some(), dir_conn_clear_spool(), and dirserv_spool_sort().

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