aboutsummaryrefslogtreecommitdiff
path: root/src/or/routerlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/or/routerlist.c')
-rw-r--r--src/or/routerlist.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 48536fd9c..d5d939378 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));