diff --git a/src/or/routerlist.c b/src/or/routerlist.c index c021d208a3..39da0bd0b6 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -2359,8 +2359,11 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg, int authdir = authdir_mode(get_options()); int authdir_believes_valid = 0; routerinfo_t *old_router; - /* This has side effects, so do it before we start the real work */ - int have_dir_info = router_have_minimum_dir_info(); + /* router_have_minimum_dir_info() has side effects, so do it before we + * start the real work */ + int authdir_may_warn_about_unreachable_server = + authdir && !from_cache && !from_fetch && + router_have_minimum_dir_info(); routerlist_check_bug_417(); tor_assert(msg); @@ -2455,8 +2458,7 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg, router->num_unreachable_notifications = old_router->num_unreachable_notifications; } - if (authdir && !from_cache && !from_fetch && - have_dir_info && + if (authdir_may_warn_about_unreachable_server && dirserv_thinks_router_is_blatantly_unreachable(router, time(NULL))) { if (router->num_unreachable_notifications >= 3) { unreachable = 1;