summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug159634
-rw-r--r--src/or/dirserv.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/changes/bug15963 b/changes/bug15963
new file mode 100644
index 0000000000..8c903d2d34
--- /dev/null
+++ b/changes/bug15963
@@ -0,0 +1,4 @@
+ o Hidden service directory enhancement
+ - Relays need to have the Fast flag to ge the HSDir flag. As this is
+ being written, we'll go from 2745 HSDirs down to 2342, a ~14% drop.
+ Fixes #15983.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index e5b180696b..53b450cef5 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1344,7 +1344,7 @@ 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 flag and it's currently
+ * it has a DirPort open, it has the Stable and Fast flag and it's currently
* considered Running.
*
* This function needs to be called after router-\>is_running has
@@ -1372,7 +1372,7 @@ dirserv_thinks_router_is_hs_dir(const routerinfo_t *router,
uptime = real_uptime(router, now);
return (router->wants_to_be_hs_dir && router->dir_port &&
- node->is_stable &&
+ node->is_stable && node->is_fast &&
uptime >= get_options()->MinUptimeHidServDirectoryV2 &&
router_is_active(router, node, now));
}