try dirport reachability testing five times less often.

it's already so darn thorough per test -- it chews through
like four circuits before giving up.


svn:r8646
This commit is contained in:
Roger Dingledine
2006-10-08 06:33:02 +00:00
parent ceb3a50977
commit 538c54e376
2 changed files with 6 additions and 4 deletions
-2
View File
@@ -21,8 +21,6 @@ const char dirserv_c_id[] =
* directory authorities. */
#define MAX_UNTRUSTED_NETWORKSTATUSES 16
extern long stats_n_seconds_working;
typedef enum {
FP_NAMED, /**< Listed in fingerprint file. */
FP_VALID, /**< Unlisted but believed valid. */
+6 -2
View File
@@ -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. */