From da06f3553c09a865f63be13fdd4367ad6f94c9cd Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 3 Jan 2006 13:09:49 +0000 Subject: [PATCH] don't try to build circuits until we have 3 running servers; and for networks that are very small, having more than a quarter of the descriptors is much harder than having equal to or more than a quarter of the descriptors -- follow the spec. svn:r5720 --- src/or/routerlist.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 7d4d563006..ca07310535 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -3487,7 +3487,7 @@ update_router_descriptor_downloads(time_t now) int router_have_minimum_dir_info(void) { - int tot = 0, any_running = 0; + int tot = 0, num_running = 0; int n_ns, res, avg; static int have_enough = 0; if (!networkstatus_list || !routerlist) { @@ -3504,12 +3504,10 @@ router_have_minimum_dir_info(void) avg = tot / n_ns; SMARTLIST_FOREACH(routerstatus_list, local_routerstatus_t *, rs, { - if (rs->status.is_running) { - any_running = 1; - break; - } + if (rs->status.is_running) + num_running++; }); - res = smartlist_len(routerlist->routers) > (avg/4) && any_running; + res = smartlist_len(routerlist->routers) >= (avg/4) && num_running > 2; done: if (res && !have_enough) { log(LOG_NOTICE, LD_DIR,