]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
expire old CIRCUIT_PURPOSE_C_REND_READY circs too
authorRoger Dingledine <arma@torproject.org>
Fri, 9 Apr 2004 20:08:13 +0000 (20:08 +0000)
committerRoger Dingledine <arma@torproject.org>
Fri, 9 Apr 2004 20:08:13 +0000 (20:08 +0000)
svn:r1585

src/or/circuit.c
src/or/main.c

index 34cf31000373e180a72888d4b44fc1c464fdcca0..b4eab75c9b2e80eadbee46d6e5c0c2c6a97ba77b 100644 (file)
@@ -452,11 +452,16 @@ void circuit_expire_building(void) {
     if(victim->timestamp_created + MIN_SECONDS_BEFORE_EXPIRING_CIRC > now)
       continue; /* it's young still, don't mess with it */
 
-    /* if circ is !open, or if it's open but purpose is est intro or est rend,
-     * then mark it for close */
+    /* if circ is !open, or if it's open but purpose is a non-finished
+     * intro or rend, then mark it for close */
     if(victim->state != CIRCUIT_STATE_OPEN ||
        victim->purpose == CIRCUIT_PURPOSE_C_ESTABLISH_REND ||
-       victim->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO) {
+       victim->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO ||
+       /* c_rend_ready circs measure age since timestamp_dirty,
+        * because that's set when they switch purposes
+        */
+       (victim->purpose == CIRCUIT_PURPOSE_C_REND_READY &&
+        victim->timestamp_dirty + MIN_SECONDS_BEFORE_EXPIRING_CIRC > now)) {
       if(victim->n_conn)
         log_fn(LOG_INFO,"Abandoning circ %s:%d:%d (state %d:%s)",
                victim->n_conn->address, victim->n_port, victim->n_circ_id,
index d29ad73477e20aaeb5ead14432f301519d2badbf..40a176ecffdfa92adc3a64774264001b11ed8dec 100644 (file)
@@ -364,7 +364,7 @@ static void run_scheduled_events(time_t now) {
   }
 
   /* 2. Every second, we examine pending circuits and prune the
-   *    ones which have been pending for more than 3 seconds.
+   *    ones which have been pending for more than a few seconds.
    *    We do this before step 3, so it can try building more if
    *    it's not comfortable with the number of available circuits.
    */