diff options
-rw-r--r-- | src/or/config.c | 3 | ||||
-rw-r--r-- | src/or/main.c | 4 | ||||
-rw-r--r-- | src/or/or.h | 1 | ||||
-rw-r--r-- | src/or/rephist.c | 14 |
4 files changed, 14 insertions, 8 deletions
diff --git a/src/or/config.c b/src/or/config.c index e0dd745a9..9c6577c07 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -796,8 +796,7 @@ options_act(or_options_t *old_options) return -1; } server_has_changed_ip(); - if (has_completed_circuit || - rep_hist_circbuilding_dormant(time(NULL))) + if (has_completed_circuit || any_predicted_circuits(time(NULL))) inform_testing_reachability(); } cpuworkers_rotate(); diff --git a/src/or/main.c b/src/or/main.c index ca3742a5c..cb0e74b37 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -569,7 +569,7 @@ directory_info_has_arrived(time_t now, int from_cache) } if (server_mode(options) && !we_are_hibernating() && !from_cache && - (has_completed_circuit || rep_hist_circbuilding_dormant(now))) + (has_completed_circuit || any_predicted_circuits(now))) consider_testing_reachability(); } @@ -833,7 +833,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 || rep_hist_circbuilding_dormant(now)) && + (has_completed_circuit || any_predicted_circuits(now)) && stats_n_seconds_working < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT && !we_are_hibernating()) consider_testing_reachability(); diff --git a/src/or/or.h b/src/or/or.h index 8e2d246b8..63869e6dd 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -2141,6 +2141,7 @@ void rep_hist_note_used_internal(time_t now, int need_uptime, int rep_hist_get_predicted_internal(time_t now, int *need_uptime, int *need_capacity); +int any_predicted_circuits(time_t now); int rep_hist_circbuilding_dormant(time_t now); void rep_hist_free_all(void); diff --git a/src/or/rephist.c b/src/or/rephist.c index 3d391ad94..a9a16625c 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -912,14 +912,20 @@ rep_hist_get_predicted_internal(time_t now, int *need_uptime, return 1; } +/** Any ports used lately? These are pre-seeded if we just started + * up or if we're running a hidden service. */ +int +any_predicted_circuits(time_t now) +{ + return smartlist_len(predicted_ports_list) || + predicted_internal_time + PREDICTED_CIRCS_RELEVANCE_TIME >= now; +} + /** Return 1 if we have no need for circuits currently, else return 0. */ int rep_hist_circbuilding_dormant(time_t now) { - /* Any ports used lately? These are pre-seeded if we just started - * up or if we're running a hidden service. */ - if (smartlist_len(predicted_ports_list) || - predicted_internal_time + PREDICTED_CIRCS_RELEVANCE_TIME >= now) + if (any_predicted_circuits(now)) return 0; /* see if we'll still need to build testing circuits */ |