[or-cvs] expire old CIRCUIT_PURPOSE_C_REND_READY circs too

Roger Dingledine arma at seul.org
Fri Apr 9 20:08:15 UTC 2004


Update of /home/or/cvsroot/src/or
In directory moria.mit.edu:/home2/arma/work/onion/cvs/src/or

Modified Files:
	circuit.c main.c 
Log Message:
expire old CIRCUIT_PURPOSE_C_REND_READY circs too


Index: circuit.c
===================================================================
RCS file: /home/or/cvsroot/src/or/circuit.c,v
retrieving revision 1.201
retrieving revision 1.202
diff -u -d -r1.201 -r1.202
--- circuit.c	8 Apr 2004 09:41:28 -0000	1.201
+++ circuit.c	9 Apr 2004 20:08:13 -0000	1.202
@@ -452,11 +452,16 @@
     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: main.c
===================================================================
RCS file: /home/or/cvsroot/src/or/main.c,v
retrieving revision 1.235
retrieving revision 1.236
diff -u -d -r1.235 -r1.236
--- main.c	9 Apr 2004 20:02:16 -0000	1.235
+++ main.c	9 Apr 2004 20:08:13 -0000	1.236
@@ -364,7 +364,7 @@
   }
 
   /* 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.
    */



More information about the tor-commits mailing list