Browse Source

In router_add_to_routerlist() only call router_have_minimum_dir_info() under some circumstances, not always

svn:r10799
Peter Palfrader 18 years ago
parent
commit
9ed261cd6a
1 changed files with 6 additions and 4 deletions
  1. 6 4
      src/or/routerlist.c

+ 6 - 4
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;