From 03ce9d3ee721ca60f052abe1602b7c134e42d303 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 16 Oct 2007 14:25:14 +0000 Subject: [PATCH] r15848@catbus: nickm | 2007-10-16 10:17:02 -0400 Only drop routers for not appearing in the consensus if their purpose is GENERAL. svn:r11984 --- src/or/routerlist.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 48536fd9ca..d5d939378a 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -2667,11 +2667,10 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg, } } - /*XXXX020 I had suspicions about whether this was correct, but now I - * can't remember why. :( -NM */ - if (consensus && !in_consensus && !authdir_mode(get_options())) { - /* If it's not listed in the consensus, then don't consider replacing - * the latest router with it. */ + if (router->purpose == ROUTER_PURPOSE_GENERAL && + consensus && !in_consensus && !authdir_mode(get_options())) { + /* If it's a general router not listed in the consensus, then don't + * consider replacing the latest router with it. */ if (!from_cache && should_cache_old_descriptors()) signed_desc_append_to_journal(&router->cache_info, router_get_store(routerlist, router));