diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index be435b950a..4f4d9c70d2 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -986,15 +986,8 @@ circuit_build_times_network_close(circuit_build_times_t *cbt, /* * Check if this is a timeout that was for a circuit that spent its * entire existence during a time where we have had no network activity. - * - * Also double check that it is a valid timeout after we have possibly - * just recently reset cbt->close_ms. - * - * We use close_ms here because timeouts aren't actually counted as timeouts - * until close_ms elapses. */ - if (cbt->liveness.network_last_live <= start_time && - start_time <= (now - cbt->close_ms/1000.0)) { + if (cbt->liveness.network_last_live < start_time) { if (did_onehop) { char last_live_buf[ISO_TIME_LEN+1]; char start_time_buf[ISO_TIME_LEN+1]; @@ -1009,6 +1002,9 @@ circuit_build_times_network_close(circuit_build_times_t *cbt, now_buf); } cbt->liveness.nonlive_timeouts++; + log_info(LD_CIRC, + "Got non-live timeout. Current count is: %d", + cbt->liveness.nonlive_timeouts); } } @@ -1038,6 +1034,7 @@ circuit_build_times_network_check_live(circuit_build_times_t *cbt) return 0; } else if (cbt->liveness.nonlive_timeouts >= CBT_NETWORK_NONLIVE_TIMEOUT_COUNT) { + // XXX: We won't ever conclude the network is flaky here for poor arma... if (cbt->timeout_ms < circuit_build_times_get_initial_timeout()) { log_notice(LD_CIRC, "Network is flaky. No activity for %ld seconds. " diff --git a/src/or/circuituse.c b/src/or/circuituse.c index ce03500f34..6ecb925230 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -34,8 +34,6 @@ extern circuit_t *global_circuitlist; /* from circuitlist.c */ static void circuit_expire_old_circuits_clientside(time_t now); static void circuit_increment_failure_count(void); -long int lround(double x); - /** Return 1 if circ could be returned by circuit_get_best(). * Else return 0. */ @@ -282,11 +280,11 @@ circuit_expire_building(time_t now) circuit_t *victim, *next_circ = global_circuitlist; /* circ_times.timeout is BUILD_TIMEOUT_INITIAL_VALUE if we haven't * decided on a customized one yet */ - time_t general_cutoff = now - lround(circ_times.timeout_ms/1000); - time_t begindir_cutoff = now - lround(circ_times.timeout_ms/2000); - time_t fourhop_cutoff = now - lround(4*circ_times.timeout_ms/3000); - time_t cannibalize_cutoff = now - lround(circ_times.timeout_ms/2000); - time_t close_cutoff = now - lround(circ_times.close_ms/1000); + time_t general_cutoff = now - tor_lround(circ_times.timeout_ms/1000); + time_t begindir_cutoff = now - tor_lround(circ_times.timeout_ms/2000); + time_t fourhop_cutoff = now - tor_lround(4*circ_times.timeout_ms/3000); + time_t cannibalize_cutoff = now - tor_lround(circ_times.timeout_ms/2000); + time_t close_cutoff = now - tor_lround(circ_times.close_ms/1000); time_t introcirc_cutoff = begindir_cutoff; cpath_build_state_t *build_state;