From c26c77d24da5e2330225caba3b39614aec06d431 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Mon, 24 Mar 2008 03:50:21 +0000 Subject: If our create-fast cell is mysteriously never answered for a begindir attempt, notice more quickly. Some of our bootstrapping attempts have a 60 second delay while we sit there wondering why we're getting no response. svn:r14162 --- src/or/circuituse.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/or/circuituse.c b/src/or/circuituse.c index d7fcf907aa..404b7485be 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -210,15 +210,21 @@ circuit_expire_building(time_t now) { circuit_t *victim, *circ = global_circuitlist; time_t cutoff = now - get_options()->CircuitBuildTimeout; + time_t begindir_cutoff = now - get_options()->CircuitBuildTimeout/2; + cpath_build_state_t *build_state; while (circ) { victim = circ; circ = circ->next; if (!CIRCUIT_IS_ORIGIN(victim) || /* didn't originate here */ - victim->timestamp_created > cutoff || /* Not old enough to expire */ victim->marked_for_close) /* don't mess with marked circs */ continue; + build_state = TO_ORIGIN_CIRCUIT(victim)->build_state; + if (victim->timestamp_created > + (build_state && build_state->onehop_tunnel) ? begindir_cutoff : cutoff) + continue; /* it's still young, leave it alone */ + #if 0 /* some debug logs, to help track bugs */ if (victim->purpose >= CIRCUIT_PURPOSE_C_INTRODUCING && -- cgit v1.2.3-54-g00ecf