10 #define TOR_PROTOVER_H
23 #define FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS "0.2.9.3-alpha"
27 #define PROTOVER_LINKAUTH_ED25519_HANDSHAKE 3
30 #define PROTOVER_RELAY_EXTEND2 2
32 #define PROTOVER_RELAY_ACCEPT_IPV6 2
34 #define PROTOVER_RELAY_EXTEND_IPV6 3
37 #define PROTOVER_RELAY_CANONICAL_IPV6 3
40 #define PROTOVER_HS_INTRO_V3 4
43 #define PROTOVER_HS_INTRO_DOS 5
46 #define PROTOVER_HS_RENDEZVOUS_POINT_V3 2
49 #define PROTOVER_HSDIR_V3 2
52 #define PROTOVER_HS_SETUP_PADDING 2
88 #ifdef PROTOVER_PRIVATE
90 typedef struct proto_entry_t {
102 #if !defined(HAVE_RUST) && defined(TOR_UNIT_TESTS)
110 #define proto_entry_free(entry) \
111 FREE_AND_NULL(proto_entry_t, proto_entry_free_, (entry))
STATIC const char * protocol_type_to_str(protocol_type_t pr)
STATIC void proto_entry_free_(proto_entry_t *entry)
char * protover_compute_vote(const smartlist_t *list_of_proto_strings, int threshold)
STATIC char * encode_protocol_list(const smartlist_t *sl)
STATIC smartlist_t * parse_protocol_list(const char *s)
const char * protover_compute_for_old_tor(const char *version)
C_RUST_COUPLED: src/rust/protover/protover.rs compute_for_old_tor
bool protover_list_is_invalid(const char *s)
const char * protover_get_supported_protocols(void)
C_RUST_COUPLED: src/rust/protover/protover.rs SUPPORTED_PROTOCOLS
void protover_free_all(void)
int protover_all_supported(const char *s, char **missing)
int protover_is_supported_here(protocol_type_t pr, uint32_t ver)
int protocol_list_supports_protocol(const char *list, protocol_type_t tp, uint32_t version)
int protocol_list_supports_protocol_or_later(const char *list, protocol_type_t tp, uint32_t version)
Macros to implement mocking and selective exposure for the test code.
Integer definitions used throughout Tor.