mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
expire old CIRCUIT_PURPOSE_C_REND_READY circs too
svn:r1585
This commit is contained in:
+8
-3
@@ -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,
|
||||
|
||||
+1
-1
@@ -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.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user