From b2b18b3cfeb9536c3bac9b6d3184ace97c0d758f Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 27 Apr 2004 11:23:56 +0000 Subject: [PATCH] it was the second bug that was nailing us. periodically we expire some circuits if we already have enough, and we were counting rend circs in that number. (the first one wasn't a bug after all) svn:r1729 --- trunk/src/or/circuit.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/trunk/src/or/circuit.c b/trunk/src/or/circuit.c index 37c9fa4abe..a1ca45eee2 100644 --- a/trunk/src/or/circuit.c +++ b/trunk/src/or/circuit.c @@ -1232,10 +1232,9 @@ void circuit_expire_old_circuits(void) { if (circ->timestamp_dirty && circ->timestamp_dirty + options.NewCircuitPeriod < now && !circ->p_conn && /* we're the origin */ - !circ->p_streams && /* AP connections */ - !circ->n_streams /* exit connections */ ) { - log_fn(LOG_DEBUG,"Closing n_circ_id %d (dirty %d secs ago)",circ->n_circ_id, - (int)(now - circ->timestamp_dirty)); + !circ->p_streams /* nothing attached */ ) { + log_fn(LOG_DEBUG,"Closing n_circ_id %d (dirty %d secs ago, purp %d)",circ->n_circ_id, + (int)(now - circ->timestamp_dirty), circ->purpose); circuit_mark_for_close(circ); } else if (!circ->timestamp_dirty && CIRCUIT_IS_ORIGIN(circ) && circ->state == CIRCUIT_STATE_OPEN && @@ -1250,6 +1249,8 @@ void circuit_expire_old_circuits(void) { } for (i = MAX_UNUSED_OPEN_CIRCUITS; i < smartlist_len(unused_open_circs); ++i) { circuit_t *circ = smartlist_get(unused_open_circs, i); + log_fn(LOG_DEBUG,"Expiring excess clean circ (n_circ_id %d, purp %d)", + circ->n_circ_id, circ->purpose); circuit_mark_for_close(circ); } smartlist_free(unused_open_circs);