Browse Source

prop224: HSDir v3 support is >= 0.3.0.8

Because of bug #22447, we have to select nodes that are at least this version.

Signed-off-by: David Goulet <dgoulet@torproject.org>
David Goulet 6 years ago
parent
commit
85c80adf4a
2 changed files with 10 additions and 0 deletions
  1. 5 0
      src/or/nodelist.c
  2. 5 0
      src/or/routerparse.c

+ 5 - 0
src/or/nodelist.c

@@ -55,6 +55,7 @@
 #include "rendservice.h"
 #include "router.h"
 #include "routerlist.h"
+#include "routerparse.h"
 #include "routerset.h"
 #include "torcert.h"
 
@@ -797,6 +798,10 @@ node_supports_v3_hsdir(const node_t *node)
     if (node->ri->protocol_list == NULL) {
       return 0;
     }
+    if (node->ri->platform) {
+      /* Bug #22447 forces us to filter on this version. */
+      return tor_version_as_new_as(node->ri->platform, "0.3.0.8");
+    }
     return protocol_list_supports_protocol(node->ri->protocol_list,
                                            PRT_HSDIR, PROTOVER_HSDIR_V3);
   }

+ 5 - 0
src/or/routerparse.c

@@ -2718,6 +2718,11 @@ routerstatus_parse_entry_from_string(memarea_t *area,
         tor_version_as_new_as(tok->args[0], "0.2.4.8-alpha");
       rs->protocols_known = 1;
     }
+    if (!strcmpstart(tok->args[0], "Tor ") && found_protocol_list) {
+      /* Bug #22447 forces us to filter on this version. */
+      rs->supports_v3_hsdir =
+        tor_version_as_new_as(tok->args[0], "0.3.0.8");
+    }
     if (vote_rs) {
       vote_rs->version = tor_strdup(tok->args[0]);
     }