[tor-commits] [tor/master] protover: Sort version flags by their underlying protocols

nickm at torproject.org nickm at torproject.org
Tue Jun 9 19:45:23 UTC 2020


commit 51f32140b41551bf8f34c9e30a067ddf027401b6
Author: teor <teor at riseup.net>
Date:   Mon May 11 12:21:18 2020 +1000

    protover: Sort version flags by their underlying protocols
    
    Also fix some comment typos, mainly ">=" when the code says "=".
    
    Part of 33226.
---
 src/core/or/or.h                |  9 +++++----
 src/core/or/versions.c          | 10 ++++++++--
 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 5b35cbe7f..28211b48c 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 a9a960d66..2a33bf68f 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 7454f342f..6a8e1723d 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)





More information about the tor-commits mailing list