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 21 of file dir_connection_st.h.

Field Documentation

◆ base_

connection_t base_

Definition at line 22 of file dir_connection_st.h.

◆ compress_state

struct tor_compress_state_t* compress_state

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

Definition at line 43 of file dir_connection_st.h.

Referenced by connection_dir_buf_add(), and connection_write_to_buf_impl_().

◆ dirconn_direct

unsigned int dirconn_direct

Is this dirconn direct, or via a multi-hop Tor circuit? Direct connections can use the DirPort, or BEGINDIR over the ORPort.

Definition at line 33 of file dir_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. The dirserver still needs this for the incoming side, so it's moved here.

Definition at line 60 of file dir_connection_st.h.

Referenced by connection_dir_finished_flushing().

◆ guard_state

struct circuit_guard_state_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 52 of file dir_connection_st.h.

Referenced by connection_dir_client_request_failed().

◆ hs_ident

struct hs_ident_dir_conn_t* hs_ident

Definition at line 48 of file dir_connection_st.h.

◆ identity_digest

char identity_digest[DIGEST_LEN]

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

Definition at line 54 of file dir_connection_st.h.

Referenced by connection_dir_client_request_failed(), and handle_response_upload_dir().

◆ requested_resource

char* 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 30 of file dir_connection_st.h.

Referenced by connection_dir_bridge_routerdesc_failed(), connection_dir_client_reached_eof(), directory_send_command(), handle_response_fetch_consensus(), handle_response_fetch_desc(), and list_pending_fpsk_downloads().

◆ router_purpose

uint8_t router_purpose

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

Definition at line 37 of file dir_connection_st.h.

Referenced by connection_dir_client_reached_eof().

◆ spool

smartlist_t* spool

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

Definition at line 41 of file dir_connection_st.h.

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

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