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 65bfafba6c..6ac834fdc0 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -1279,7 +1279,7 @@ dirserv_thinks_router_is_unreliable(time_t now, /** Return true iff router 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 @@ -1307,7 +1307,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)); }