From: Mike Perry Date: Thu, 28 Mar 2013 00:43:27 +0000 (-0700) Subject: Don't relax the timeout for already opened 1-hop circuits. X-Git-Tag: tor-0.2.4.12-alpha~5^2~8^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d39e6736fe1608028223604f49d5d091ef23bb27;p=thirdparty%2Ftor.git Don't relax the timeout for already opened 1-hop circuits. --- diff --git a/src/or/circuituse.c b/src/or/circuituse.c index bbf219a1ef..8fb70f5853 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -529,7 +529,12 @@ circuit_expire_building(void) if (timercmp(&victim->timestamp_began, &cutoff, >)) continue; /* it's still young, leave it alone */ - if (!any_opened_circs) { + /* We need to double-check the opened state here because + * we don't want to consider opened 1-hop dircon circuits for + * deciding when to relax the timeout, but we *do* want to relax + * those circuits too if nothing else is opened *and* they still + * aren't either. */ + if (!any_opened_circs && victim->state != CIRCUIT_STATE_OPEN) { /* It's still young enough that we wouldn't close it, right? */ if (timercmp(&victim->timestamp_began, &close_cutoff, >)) { if (!TO_ORIGIN_CIRCUIT(victim)->relaxed_timeout) {