21 uint32_t circuit_bucket;
26 time_t last_circ_bucket_refill_ts;
32 time_t marked_until_ts;
39 uint32_t concurrent_count;
48 time_t marked_until_ts;
72 void dos_free_all(
void);
74 int dos_enabled(
void);
75 void dos_log_heartbeat(
void);
80 const char *transport_name);
83 int dos_should_refuse_single_hop_client(
void);
84 void dos_note_refuse_single_hop_client(
void);
85 void dos_note_circ_max_outq(
const channel_t *chan);
87 uint32_t dos_get_num_cc_marked_addr(
void);
88 uint32_t dos_get_num_cc_marked_addr_maxq(
void);
89 uint64_t dos_get_num_cc_rejected(
void);
90 uint64_t dos_get_num_conn_addr_rejected(
void);
91 uint64_t dos_get_num_conn_addr_connect_rejected(
void);
92 uint64_t dos_get_num_single_hop_refused(
void);
99 #define DOS_CC_ENABLED_DEFAULT 0
101 #define DOS_CC_DEFENSE_TYPE_DEFAULT DOS_CC_DEFENSE_REFUSE_CELL
103 #define DOS_CC_MIN_CONCURRENT_CONN_DEFAULT 3
105 #define DOS_CC_CIRCUIT_RATE_DEFAULT 3
107 #define DOS_CC_CIRCUIT_BURST_DEFAULT 90
109 #define DOS_CC_DEFENSE_TIME_PERIOD_DEFAULT (60 * 60)
112 typedef enum dos_cc_defense_type_t {
114 DOS_CC_DEFENSE_NONE = 1,
116 DOS_CC_DEFENSE_REFUSE_CELL = 2,
120 DOS_CC_DEFENSE_MAX = 2,
121 } dos_cc_defense_type_t;
123 void dos_cc_new_create_cell(
channel_t *channel);
124 dos_cc_defense_type_t dos_cc_get_defense_type(
channel_t *chan);
131 #define DOS_CONN_ENABLED_DEFAULT 0
133 #define DOS_CONN_MAX_CONCURRENT_COUNT_DEFAULT 100
135 #define DOS_CONN_DEFENSE_TYPE_DEFAULT DOS_CONN_DEFENSE_CLOSE
137 #define DOS_CONN_CONNECT_RATE_DEFAULT 20
139 #define DOS_CONN_CONNECT_BURST_DEFAULT 40
141 #define DOS_CONN_CONNECT_DEFENSE_TIME_PERIOD_DEFAULT (24 * 60 * 60)
145 #define DOS_CONN_CONNECT_DEFENSE_TIME_PERIOD_MIN (10)
149 typedef enum dos_conn_defense_type_t {
151 DOS_CONN_DEFENSE_NONE = 1,
153 DOS_CONN_DEFENSE_CLOSE = 2,
157 DOS_CONN_DEFENSE_MAX = 2,
158 } dos_conn_defense_type_t;
160 dos_conn_defense_type_t dos_conn_addr_get_defense_type(
const tor_addr_t *addr);
164 STATIC uint32_t get_param_conn_max_concurrent_count(
167 STATIC uint32_t get_param_cc_min_concurrent_connection(
171 STATIC uint64_t get_circuit_rate_per_second(
void);
Master header file for Tor-specific functionality.
uint32_t num_circ_max_cell_queue_size
#define MOCK_DECL(rv, funcname, arglist)
Headers for token_bucket.c.