diff options
Diffstat (limited to 'src/or/protover.h')
-rw-r--r-- | src/or/protover.h | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/src/or/protover.h b/src/or/protover.h deleted file mode 100644 index 7319d2f8c4..0000000000 --- a/src/or/protover.h +++ /dev/null @@ -1,97 +0,0 @@ -/* Copyright (c) 2016-2018, The Tor Project, Inc. */ -/* See LICENSE for licensing information */ - -/** - * \file protover.h - * \brief Headers and type declarations for protover.c - **/ - -#ifndef TOR_PROTOVER_H -#define TOR_PROTOVER_H - -#include <stdbool.h> -#include "lib/cc/torint.h" -#include "lib/testsupport/testsupport.h" -struct smartlist_t; - -/** The first version of Tor that included "proto" entries in its - * descriptors. Authorities should use this to decide whether to - * guess proto lines. */ -/* This is a guess. */ -/// C_RUST_COUPLED: src/rust/protover/protover.rs -/// `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 HSv3 intro point support */ -#define PROTOVER_HS_INTRO_V3 4 -/** The protover version number that signifies HSv3 rendezvous point support */ -#define PROTOVER_HS_RENDEZVOUS_POINT_V3 2 - -/** List of recognized subprotocols. */ -/// C_RUST_COUPLED: src/rust/protover/ffi.rs `translate_to_rust` -/// C_RUST_COUPLED: src/rust/protover/protover.rs `Proto` -typedef enum protocol_type_t { - PRT_LINK, - PRT_LINKAUTH, - PRT_RELAY, - PRT_DIRCACHE, - PRT_HSDIR, - PRT_HSINTRO, - PRT_HSREND, - PRT_DESC, - PRT_MICRODESC, - PRT_CONS, -} protocol_type_t; - -bool protover_contains_long_protocol_names(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); - -char *protover_compute_vote(const struct smartlist_t *list_of_proto_strings, - int threshold); -const char *protover_compute_for_old_tor(const char *version); -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); - -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. - * - * (This needs to handle voting on protocols which - * 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; -} proto_entry_t; - -#if !defined(HAVE_RUST) && defined(TOR_UNIT_TESTS) -STATIC struct smartlist_t *parse_protocol_list(const char *s); -STATIC char *encode_protocol_list(const struct smartlist_t *sl); -STATIC const char *protocol_type_to_str(protocol_type_t pr); -STATIC int str_to_protocol_type(const char *s, protocol_type_t *pr_out); -STATIC void proto_entry_free_(proto_entry_t *entry); -#endif /* !defined(HAVE_RUST) && defined(TOR_UNIT_TESTS) */ - -#define proto_entry_free(entry) \ - FREE_AND_NULL(proto_entry_t, proto_entry_free_, (entry)) - -#endif /* defined(PROTOVER_PRIVATE) */ - -#endif /* !defined(TOR_PROTOVER_H) */ |