Data Fields
hs_service_config_t Struct Reference

#include <hs_service.h>

Data Fields

uint32_t version
unsigned int hs_version_explicitly_set: 1
char * directory_path
uint64_t max_streams_per_rdv_circuit
unsigned int max_streams_close_circuit: 1
unsigned int num_intro_points
unsigned int allow_unknown_ports: 1
unsigned int is_single_onion: 1
unsigned int dir_group_readable: 1
unsigned int is_ephemeral: 1
hs_circuit_id_protocol_t circuit_id_protocol
unsigned int has_dos_defense_enabled: 1
uint32_t intro_dos_rate_per_sec
uint32_t intro_dos_burst_per_sec
unsigned int has_pow_defenses_enabled: 1
uint32_t pow_queue_rate
uint32_t pow_queue_burst

Detailed Description

Service configuration. The following are set from the torrc options either set by the configuration file or by the control port. Nothing else should change those values.

Definition at line 214 of file hs_service.h.

Field Documentation

◆ allow_unknown_ports

unsigned int allow_unknown_ports

True iff we allow request made on unknown ports. Specified by HiddenServiceAllowUnknownPorts option.

Definition at line 248 of file hs_service.h.

Referenced by set_service_default_config().

◆ circuit_id_protocol

hs_circuit_id_protocol_t circuit_id_protocol

Does this service export the circuit ID of its clients?

Definition at line 262 of file hs_service.h.

Referenced by hs_service_exports_circuit_id().

◆ clients

smartlist_t* clients

List of hs_service_authorized_client_t's of clients that may access this service. Specified by HiddenServiceAuthorizeClient option.

Definition at line 244 of file hs_service.h.

Referenced by is_client_auth_enabled(), and service_authorized_client_config_equal().

◆ dir_group_readable

unsigned int dir_group_readable

If true, allow group read permissions on the directory_path. Specified by HiddenServiceDirGroupReadable option.

Definition at line 256 of file hs_service.h.

Referenced by load_service_keys(), and set_service_default_config().

◆ directory_path

char* directory_path

Path on the filesystem where the service persistent data is stored. NULL if the service is ephemeral. Specified by HiddenServiceDir option.

Definition at line 227 of file hs_service.h.

Referenced by config_generic_service(), hs_ob_parse_config_file(), hs_service_get_version_from_key(), load_client_keys(), load_service_keys(), service_add_fnames_to_list(), service_clear_config(), service_escaped_dir(), service_is_duplicate_in_list(), and set_service_default_config().

◆ has_dos_defense_enabled

unsigned int has_dos_defense_enabled

DoS defenses. For the ESTABLISH_INTRO cell extension.

Definition at line 265 of file hs_service.h.

Referenced by build_establish_intro_extensions(), and set_service_default_config().

◆ has_pow_defenses_enabled

unsigned int has_pow_defenses_enabled

True iff PoW anti-DoS defenses are enabled.

Definition at line 270 of file hs_service.h.

◆ hs_version_explicitly_set

unsigned int hs_version_explicitly_set

Have we explicitly set HiddenServiceVersion?

Definition at line 220 of file hs_service.h.

◆ intro_dos_burst_per_sec

uint32_t intro_dos_burst_per_sec

Definition at line 267 of file hs_service.h.

◆ intro_dos_rate_per_sec

uint32_t intro_dos_rate_per_sec

Definition at line 266 of file hs_service.h.

◆ is_ephemeral

unsigned int is_ephemeral

◆ is_single_onion

unsigned int is_single_onion

If true, this service is a Single Onion Service. Specified by HiddenServiceSingleHopMode and HiddenServiceNonAnonymousMode options.

Definition at line 252 of file hs_service.h.

Referenced by build_service_desc_encrypted(), get_service_anonymity_string(), launch_intro_point_circuits(), launch_rendezvous_point_circuit(), and set_service_default_config().

◆ max_streams_close_circuit

unsigned int max_streams_close_circuit

If true, we close circuits that exceed the max_streams_per_rdv_circuit limit. Specified by HiddenServiceMaxStreamsCloseCircuit option.

Definition at line 236 of file hs_service.h.

Referenced by hs_service_add_ephemeral(), and set_service_default_config().

◆ max_streams_per_rdv_circuit

uint64_t max_streams_per_rdv_circuit

The maximum number of simultaneous streams per rendezvous circuit that are allowed to be created. No limit if 0. Specified by HiddenServiceMaxStreams option.

Definition at line 232 of file hs_service.h.

Referenced by hs_service_add_ephemeral(), and set_service_default_config().

◆ num_intro_points

unsigned int num_intro_points

How many introduction points this service has. Specified by HiddenServiceNumIntroductionPoints option.

Definition at line 240 of file hs_service.h.

Referenced by get_max_intro_circ_per_period(), hs_circ_service_intro_has_opened(), pick_needed_intro_points(), set_service_default_config(), and should_service_upload_descriptor().

◆ ob_master_pubkeys

smartlist_t* ob_master_pubkeys

If set, contains the Onion Balance master ed25519 public key (taken from an .onion addresses) that this tor instance serves as backend.

Definition at line 276 of file hs_service.h.

Referenced by ob_option_parse().

◆ ports

smartlist_t* ports

◆ pow_queue_burst

uint32_t pow_queue_burst

Definition at line 272 of file hs_service.h.

◆ pow_queue_rate

uint32_t pow_queue_rate

Definition at line 271 of file hs_service.h.

◆ version

uint32_t version

Protocol version of the service. Specified by HiddenServiceVersion option.

Definition at line 217 of file hs_service.h.

Referenced by build_service_desc_plaintext(), config_has_invalid_options(), config_learn_service_version(), and hs_service_add_ephemeral().

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