aboutsummaryrefslogtreecommitdiff
path: root/src/core/or/protover.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/or/protover.h')
-rw-r--r--src/core/or/protover.h38
1 files changed, 26 insertions, 12 deletions
diff --git a/src/core/or/protover.h b/src/core/or/protover.h
index 9509f3e8a3..88fcbb0b61 100644
--- a/src/core/or/protover.h
+++ b/src/core/or/protover.h
@@ -22,12 +22,32 @@ struct smartlist_t;
/// `FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS`
#define FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS "0.2.9.3-alpha"
-/** The protover version number that signifies HSDir support for HSv3 */
-#define PROTOVER_HSDIR_V3 2
+/** The protover version number that signifies ed25519 link handshake support
+ */
+#define PROTOVER_LINKAUTH_ED25519_HANDSHAKE 3
+
+/** The protover version number that signifies extend2 cell support */
+#define PROTOVER_RELAY_EXTEND2 2
+/** The protover version number where relays can accept IPv6 connections */
+#define PROTOVER_RELAY_ACCEPT_IPV6 2
+/** The protover version number where relays can initiate IPv6 extends */
+#define PROTOVER_RELAY_EXTEND_IPV6 3
+/** The protover version number where relays can consider IPv6 connections
+ * canonical */
+#define PROTOVER_RELAY_CANONICAL_IPV6 3
+
/** The protover version number that signifies HSv3 intro point support */
#define PROTOVER_HS_INTRO_V3 4
+/** The protover version number where intro points support denial of service
+ * resistance */
+#define PROTOVER_HS_INTRO_DOS 5
+
/** The protover version number that signifies HSv3 rendezvous point support */
#define PROTOVER_HS_RENDEZVOUS_POINT_V3 2
+
+/** The protover version number that signifies HSDir support for HSv3 */
+#define PROTOVER_HSDIR_V3 2
+
/** The protover that signals support for HS circuit setup padding machines */
#define PROTOVER_HS_SETUP_PADDING 2
@@ -49,7 +69,7 @@ typedef enum protocol_type_t {
PRT_FLOWCTRL = 11,
} protocol_type_t;
-bool protover_contains_long_protocol_names(const char *s);
+bool protover_list_is_invalid(const char *s);
int protover_all_supported(const char *s, char **missing);
int protover_is_supported_here(protocol_type_t pr, uint32_t ver);
const char *protover_get_supported_protocols(void);
@@ -66,13 +86,6 @@ int protocol_list_supports_protocol_or_later(const char *list,
void protover_free_all(void);
#ifdef PROTOVER_PRIVATE
-/** Represents a range of subprotocols of a given type. All subprotocols
- * between <b>low</b> and <b>high</b> inclusive are included. */
-typedef struct proto_range_t {
- uint32_t low;
- uint32_t high;
-} proto_range_t;
-
/** Represents a set of ranges of subprotocols of a given type. */
typedef struct proto_entry_t {
/** The name of the protocol.
@@ -81,8 +94,9 @@ typedef struct proto_entry_t {
* we don't recognize yet, so it's a char* rather than a protocol_type_t.)
*/
char *name;
- /** Smartlist of proto_range_t */
- struct smartlist_t *ranges;
+ /** Bitmask of supported protocols. Version 'x' is included in this
+ * entry if and only if bit '1<<x' is set here. */
+ uint64_t bitmask;
} proto_entry_t;
#if !defined(HAVE_RUST) && defined(TOR_UNIT_TESTS)