[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] [tor/master 1/2] Add check for CIRCUIT_PURPOSE_S_REND_JOINED.



Author: Mike Perry <mikeperry-git@xxxxxxxxxx>
Date: Tue, 27 Jul 2010 08:45:23 -0700
Subject: Add check for CIRCUIT_PURPOSE_S_REND_JOINED.
Commit: 5b0c0e1f89b020f4fc50fa1b50edbb17fa776fe4

These circuits stick around much longer than others on the server side for
performance reasons. Their lifetime is controlled by the client.
---
 src/or/circuituse.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index 4503e1d..65ecb54 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;
+          }
         }
       }
     }
-- 
1.7.1