dirvote: Move required protos into private header

Move the recommended and required protocol version lists into the
private section of the dirvote header, and turn them into macros.

Preparation for 33285.
This commit is contained in:
teor 2020-02-12 22:03:19 +10:00
parent 41a9eddf2b
commit 78051c8808
2 changed files with 20 additions and 8 deletions

View File

@ -4619,17 +4619,14 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key,
/* These are hardwired, to avoid disaster. */
v3_out->recommended_relay_protocols =
tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
"Link=4 Microdesc=1-2 Relay=2");
tor_strdup(DIRVOTE_RECCOMEND_RELAY_PROTO);
v3_out->recommended_client_protocols =
tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
"Link=4 Microdesc=1-2 Relay=2");
tor_strdup(DIRVOTE_RECCOMEND_CLIENT_PROTO);
v3_out->required_client_protocols =
tor_strdup("Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
"Link=4 Microdesc=1-2 Relay=2");
tor_strdup(DIRVOTE_REQUIRE_CLIENT_PROTO);
v3_out->required_relay_protocols =
tor_strdup("Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 "
"Link=3-4 Microdesc=1 Relay=1-2");
tor_strdup(DIRVOTE_REQUIRE_RELAY_PROTO);
/* We are not allowed to vote to require anything we don't have. */
tor_assert(protover_all_supported(v3_out->required_relay_protocols, NULL));

View File

@ -230,6 +230,21 @@ char *networkstatus_get_detached_signatures(smartlist_t *consensuses);
STATIC microdesc_t *dirvote_create_microdescriptor(const routerinfo_t *ri,
int consensus_method);
/* These are hardwired, to avoid disaster. */
#define DIRVOTE_RECCOMEND_RELAY_PROTO \
"Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 " \
"Link=4 Microdesc=1-2 Relay=2"
#define DIRVOTE_RECCOMEND_CLIENT_PROTO \
"Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 " \
"Link=4 Microdesc=1-2 Relay=2"
#define DIRVOTE_REQUIRE_CLIENT_PROTO \
"Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 " \
"Link=4 Microdesc=1-2 Relay=2"
#define DIRVOTE_REQUIRE_RELAY_PROTO \
"Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 " \
"Link=3-4 Microdesc=1 Relay=1-2"
#endif /* defined(DIRVOTE_PRIVATE) */
#endif /* !defined(TOR_DIRVOTE_H) */