|
@@ -833,6 +833,7 @@ run_scheduled_events(time_t now)
|
|
|
/* 2b. Once per minute, regenerate and upload the descriptor if the old
|
|
|
* one is inaccurate. */
|
|
|
if (time_to_check_descriptor < now) {
|
|
|
+ static int dirport_reachability_count = 0;
|
|
|
time_to_check_descriptor = now + CHECK_DESCRIPTOR_INTERVAL;
|
|
|
check_descriptor_bandwidth_changed(now);
|
|
|
if (time_to_check_ipaddress < now) {
|
|
@@ -847,8 +848,11 @@ run_scheduled_events(time_t now)
|
|
|
if (server_mode(options) &&
|
|
|
(has_completed_circuit || !any_predicted_circuits(now)) &&
|
|
|
stats_n_seconds_working < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT &&
|
|
|
- !we_are_hibernating())
|
|
|
- consider_testing_reachability(1, 1);
|
|
|
+ !we_are_hibernating()) {
|
|
|
+ consider_testing_reachability(1, dirport_reachability_count==0);
|
|
|
+ if (++dirport_reachability_count > 5)
|
|
|
+ dirport_reachability_count = 0;
|
|
|
+ }
|
|
|
|
|
|
/* If any networkstatus documents are no longer recent, we need to
|
|
|
* update all the descriptors' running status. */
|