/*
* 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];
now_buf);
}
cbt->liveness.nonlive_timeouts++;
+ log_info(LD_CIRC,
+ "Got non-live timeout. Current count is: %d",
+ cbt->liveness.nonlive_timeouts);
}
}
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. "
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 <b>circ</b> could be returned by circuit_get_best().
* Else return 0.
*/
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;