From: Mike Perry Date: Tue, 27 Jul 2010 15:45:23 +0000 (-0700) Subject: Add check for CIRCUIT_PURPOSE_S_REND_JOINED. X-Git-Tag: tor-0.2.2.15-alpha~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5b0c0e1f89b020f4fc50fa1b50edbb17fa776fe4;p=thirdparty%2Ftor.git Add check for CIRCUIT_PURPOSE_S_REND_JOINED. These circuits stick around much longer than others on the server side for performance reasons. Their lifetime is controlled by the client. --- diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 4503e1d817..65ecb5433c 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -746,13 +746,18 @@ circuit_expire_old_circuits_clientside(time_t now) (long)(now - circ->timestamp_created)); circuit_mark_for_close(circ, END_CIRC_REASON_FINISHED); } else if (!TO_ORIGIN_CIRCUIT(circ)->is_ancient) { - log_notice(LD_CIRC, - "Ancient non-dirty circuit %d is still around after " - "%ld seconds. Purpose: %d", - TO_ORIGIN_CIRCUIT(circ)->global_identifier, - (long)(now - circ->timestamp_created), - circ->purpose); - TO_ORIGIN_CIRCUIT(circ)->is_ancient = 1; + /* Server side rend joined circuits can end up really old, because + * they are reused by clients for longer than normal. The client + * controls their lifespan. */ + if (circ->purpose != CIRCUIT_PURPOSE_S_REND_JOINED) { + log_notice(LD_CIRC, + "Ancient non-dirty circuit %d is still around after " + "%ld seconds. Purpose: %d", + TO_ORIGIN_CIRCUIT(circ)->global_identifier, + (long)(now - circ->timestamp_created), + circ->purpose); + TO_ORIGIN_CIRCUIT(circ)->is_ancient = 1; + } } } }