From c3028edba6f8474175a59ad22dd0d3ca23c60f85 Mon Sep 17 00:00:00 2001 From: Mike Perry Date: Tue, 20 Nov 2012 01:52:33 -0800 Subject: [PATCH] Remove n_chan codepaths for determinining guard. Cpath is apparently good enough. --- src/or/circuitbuild.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 160ad3f1fe..aaa1959704 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -1308,9 +1308,6 @@ pathbias_count_success(origin_circuit_t *circ) if (circ->cpath && circ->cpath->extend_info) { guard = entry_guard_get_by_id_digest( circ->cpath->extend_info->identity_digest); - } else if (circ->base_.n_chan) { - guard = - entry_guard_get_by_id_digest(circ->base_.n_chan->identity_digest); } if (guard) { @@ -1387,11 +1384,8 @@ pathbias_count_successful_close(origin_circuit_t *circ) if (circ->cpath && circ->cpath->extend_info) { guard = entry_guard_get_by_id_digest( circ->cpath->extend_info->identity_digest); - } else if (circ->base_.n_chan) { - guard = - entry_guard_get_by_id_digest(circ->base_.n_chan->identity_digest); } - + if (guard) { /* In the long run: circuit_success ~= successful_circuit_close + * circ_failure + stream_failure */ @@ -1428,11 +1422,8 @@ pathbias_count_collapse(origin_circuit_t *circ) if (circ->cpath && circ->cpath->extend_info) { guard = entry_guard_get_by_id_digest( circ->cpath->extend_info->identity_digest); - } else if (circ->base_.n_chan) { - guard = - entry_guard_get_by_id_digest(circ->base_.n_chan->identity_digest); } - + if (guard) { guard->collapsed_circuits++; entry_guards_changed(); @@ -1459,11 +1450,8 @@ pathbias_count_unusable(origin_circuit_t *circ) if (circ->cpath && circ->cpath->extend_info) { guard = entry_guard_get_by_id_digest( circ->cpath->extend_info->identity_digest); - } else if (circ->base_.n_chan) { - guard = - entry_guard_get_by_id_digest(circ->base_.n_chan->identity_digest); } - + if (guard) { guard->unusable_circuits++; entry_guards_changed(); @@ -1496,9 +1484,6 @@ pathbias_count_timeout(origin_circuit_t *circ) if (circ->cpath && circ->cpath->extend_info) { guard = entry_guard_get_by_id_digest( circ->cpath->extend_info->identity_digest); - } else if (circ->base_.n_chan) { - guard = - entry_guard_get_by_id_digest(circ->base_.n_chan->identity_digest); } if (guard) { @@ -1517,11 +1502,14 @@ pathbias_get_closed_count(entry_guard_t *guard) /* Count currently open circuits. Give them the benefit of the doubt */ for ( ; circ; circ = circ->next) { if (!CIRCUIT_IS_ORIGIN(circ) || /* didn't originate here */ - circ->marked_for_close) /* already counted */ + circ->marked_for_close || /* already counted */ + !circ->cpath || !circ->cpath->extend_info) continue; if (TO_ORIGIN_CIRCUIT(circ)->path_state == PATH_STATE_SUCCEEDED && - (memcmp(guard->identity, circ->n_chan->identity_digest, DIGEST_LEN) + (memcmp(guard->identity, + TO_ORIGIN_CIRCUIT(circ)->cpath->extend_info->identity_digest, + DIGEST_LEN) == 0)) { open_circuits++; }