summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@fscked.org>2010-07-27 08:45:23 -0700
committerRoger Dingledine <arma@torproject.org>2010-08-13 20:46:33 -0400
commit5b0c0e1f89b020f4fc50fa1b50edbb17fa776fe4 (patch)
treedde0762166433b5dc882fe3d6cbc279543127725
parentb1a588855380d021b536f42b70c9815b83eca430 (diff)
downloadtor-5b0c0e1f89b020f4fc50fa1b50edbb17fa776fe4.tar.gz
tor-5b0c0e1f89b020f4fc50fa1b50edbb17fa776fe4.zip
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.
-rw-r--r--src/or/circuituse.c19
1 files changed, 12 insertions, 7 deletions
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;
+ }
}
}
}