Browse Source

only start testing reachability once we've established a circuit.
this will make startup on dirservers less noisy.
it may also break things in subtle ways.


svn:r5878

Roger Dingledine 19 years ago
parent
commit
8fc44169e5
2 changed files with 3 additions and 1 deletions
  1. 1 0
      src/or/circuitbuild.c
  2. 2 1
      src/or/main.c

+ 1 - 0
src/or/circuitbuild.c

@@ -610,6 +610,7 @@ circuit_send_next_onion_skin(circuit_t *circ)
             "Tor has successfully opened a circuit. Looks like it's working.");
         if (server_mode(options) && !check_whether_orport_reachable()) {
           inform_testing_reachability();
+          consider_testing_reachability();
         }
       }
       circuit_rep_hist_note_result(circ);

+ 2 - 1
src/or/main.c

@@ -575,7 +575,7 @@ directory_info_has_arrived(time_t now, int from_cache)
       !we_are_hibernating()) { /* connect to the appropriate routers */
     if (!authdir_mode(options))
       router_retry_connections(0, 1);
-    if (!from_cache)
+    if (!from_cache && has_completed_circuit)
       consider_testing_reachability();
   }
 }
@@ -826,6 +826,7 @@ run_scheduled_events(time_t now)
     /* also, check religiously for reachability, if it's within the first
      * 20 minutes of our uptime. */
     if (server_mode(options) &&
+        has_completed_circuit &&
         stats_n_seconds_working < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT &&
         !we_are_hibernating())
       consider_testing_reachability();