diff options
author | teor <teor@riseup.net> | 2020-05-11 12:21:18 +1000 |
---|---|---|
committer | teor <teor@riseup.net> | 2020-05-11 12:24:06 +1000 |
commit | 51f32140b41551bf8f34c9e30a067ddf027401b6 (patch) | |
tree | 4e021961b7beb58fbc101113dbbd86101f23a819 | |
parent | e787e521af990a76c6e42cd1a8d3f46f41561f24 (diff) | |
download | tor-51f32140b41551bf8f34c9e30a067ddf027401b6.tar.gz tor-51f32140b41551bf8f34c9e30a067ddf027401b6.zip |
protover: Sort version flags by their underlying protocols
Also fix some comment typos, mainly ">=" when the code says "=".
Part of 33226.
-rw-r--r-- | src/core/or/or.h | 9 | ||||
-rw-r--r-- | src/core/or/versions.c | 10 | ||||
-rw-r--r-- | src/feature/nodelist/nodelist.c | 24 |
3 files changed, 25 insertions, 18 deletions
diff --git a/src/core/or/or.h b/src/core/or/or.h index 5b35cbe7f1..28211b48c6 100644 --- a/src/core/or/or.h +++ b/src/core/or/or.h @@ -830,6 +830,10 @@ typedef struct protover_summary_flags_t { * the v3 protocol detailed in proposal 224. This requires HSIntro=4. */ unsigned int supports_ed25519_hs_intro : 1; + /** True iff this router has a protocol list that allows it to support the + * ESTABLISH_INTRO DoS cell extension. Requires HSIntro=5. */ + unsigned int supports_establish_intro_dos_extension : 1; + /** True iff this router has a protocol list that allows it to be an hidden * service directory supporting version 3 as seen in proposal 224. This * requires HSDir=2. */ @@ -841,12 +845,9 @@ typedef struct protover_summary_flags_t { unsigned int supports_v3_rendezvous_point: 1; /** True iff this router has a protocol list that allows clients to - * negotiate hs circuit setup padding. Requires Padding>=2. */ + * negotiate hs circuit setup padding. Requires Padding=2. */ unsigned int supports_hs_setup_padding : 1; - /** True iff this router has a protocol list that allows it to support the - * ESTABLISH_INTRO DoS cell extension. Requires HSIntro>=5. */ - unsigned int supports_establish_intro_dos_extension : 1; } protover_summary_flags_t; typedef struct routerinfo_t routerinfo_t; diff --git a/src/core/or/versions.c b/src/core/or/versions.c index a9a960d66e..2a33bf68fe 100644 --- a/src/core/or/versions.c +++ b/src/core/or/versions.c @@ -434,25 +434,31 @@ memoize_protover_summary(protover_summary_flags_t *out, memset(out, 0, sizeof(*out)); out->protocols_known = 1; + out->supports_extend2_cells = protocol_list_supports_protocol(protocols, PRT_RELAY, 2); + out->supports_ed25519_link_handshake_compat = protocol_list_supports_protocol(protocols, PRT_LINKAUTH, 3); out->supports_ed25519_link_handshake_any = protocol_list_supports_protocol_or_later(protocols, PRT_LINKAUTH, 3); + out->supports_ed25519_hs_intro = protocol_list_supports_protocol(protocols, PRT_HSINTRO, 4); + out->supports_establish_intro_dos_extension = + protocol_list_supports_protocol(protocols, PRT_HSINTRO, 5); + out->supports_v3_hsdir = protocol_list_supports_protocol(protocols, PRT_HSDIR, PROTOVER_HSDIR_V3); + out->supports_v3_rendezvous_point = protocol_list_supports_protocol(protocols, PRT_HSREND, PROTOVER_HS_RENDEZVOUS_POINT_V3); + out->supports_hs_setup_padding = protocol_list_supports_protocol(protocols, PRT_PADDING, PROTOVER_HS_SETUP_PADDING); - out->supports_establish_intro_dos_extension = - protocol_list_supports_protocol(protocols, PRT_HSINTRO, 5); protover_summary_flags_t *new_cached = tor_memdup(out, sizeof(*out)); cached = strmap_set(protover_summary_map, protocols, new_cached); diff --git a/src/feature/nodelist/nodelist.c b/src/feature/nodelist/nodelist.c index 7454f342f9..6a8e1723de 100644 --- a/src/feature/nodelist/nodelist.c +++ b/src/feature/nodelist/nodelist.c @@ -1193,18 +1193,7 @@ node_supports_ed25519_hs_intro(const node_t *node) return node_get_protover_summary_flags(node)->supports_ed25519_hs_intro; } -/** Return true iff <b>node</b> supports the DoS ESTABLISH_INTRO cell - * extenstion. */ -int -node_supports_establish_intro_dos_extension(const node_t *node) -{ - tor_assert(node); - - return node_get_protover_summary_flags(node)-> - supports_establish_intro_dos_extension; -} - -/** Return true iff <b>node</b> supports to be a rendezvous point for hidden +/** Return true iff <b>node</b> can be a rendezvous point for hidden * service version 3 (HSRend=2). */ int node_supports_v3_rendezvous_point(const node_t *node) @@ -1219,6 +1208,17 @@ node_supports_v3_rendezvous_point(const node_t *node) return node_get_protover_summary_flags(node)->supports_v3_rendezvous_point; } +/** Return true iff <b>node</b> supports the DoS ESTABLISH_INTRO cell + * extenstion. */ +int +node_supports_establish_intro_dos_extension(const node_t *node) +{ + tor_assert(node); + + return node_get_protover_summary_flags(node)-> + supports_establish_intro_dos_extension; +} + /** Return the RSA ID key's SHA1 digest for the provided node. */ const uint8_t * node_get_rsa_id_digest(const node_t *node) |