[tor-commits] [tor/master] A router must be a dir cache before it may be HSDir

nickm at torproject.org nickm at torproject.org
Mon Dec 21 12:30:55 UTC 2015


commit fb80a748eab12c246afc093801ea0b3c52543955
Author: Matthew Finkel <Matthew.Finkel at gmail.com>
Date:   Mon May 25 23:09:33 2015 +0000

    A router must be a dir cache before it may be HSDir
    
    Fixes #15801
---
 src/or/dirserv.c    |    6 ++++--
 src/or/routerlist.c |    3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index fc6899b..620d324 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1350,8 +1350,9 @@ dirserv_thinks_router_is_unreliable(time_t now,
 }
 
 /** Return true iff <b>router</b> should be assigned the "HSDir" flag.
+ *
  * Right now this means it advertises support for it, it has a high uptime,
- * it has a DirPort open, it has the Stable and Fast flag and it's currently
+ * it's a directory cache, it has the Stable and Fast flags, and it's currently
  * considered Running.
  *
  * This function needs to be called after router-\>is_running has
@@ -1378,7 +1379,8 @@ dirserv_thinks_router_is_hs_dir(const routerinfo_t *router,
   else
     uptime = real_uptime(router, now);
 
-  return (router->wants_to_be_hs_dir && router->dir_port &&
+  return (router->wants_to_be_hs_dir &&
+          router->supports_tunnelled_dir_requests &&
           node->is_stable && node->is_fast &&
           uptime >= get_options()->MinUptimeHidServDirectoryV2 &&
           router_is_active(router, node, now));
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 227046b..853c07d 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -4905,7 +4905,8 @@ router_differences_are_cosmetic(const routerinfo_t *r1, const routerinfo_t *r2)
        strcasecmp(r1->contact_info, r2->contact_info)) ||
       r1->is_hibernating != r2->is_hibernating ||
       cmp_addr_policies(r1->exit_policy, r2->exit_policy) ||
-      r1->dir_cache != r2->dir_cache)
+      (r1->supports_tunnelled_dir_requests !=
+       r2->supports_tunnelled_dir_requests))
     return 0;
   if ((r1->declared_family == NULL) != (r2->declared_family == NULL))
     return 0;





More information about the tor-commits mailing list