From b36a98ff5a03b316ba781486faabf31ab83b15fa Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 6 Jan 2009 21:28:48 +0000 Subject: [PATCH] When our circuit fails at the first hop (e.g. we get a destroy cell back), avoid using that OR connection anymore, and also tell all the one-hop directory requests waiting for it that they should fail. Bugfix on 0.2.1.3-alpha. svn:r17984 --- ChangeLog | 7 ++++++- src/or/circuituse.c | 2 +- src/or/or.h | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f04b6cb0be..1138d04257 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,12 @@ Changes in version 0.2.1.11-alpha - 2009-01-?? o Minor bugfixes: - Make outbound DNS packets respect the OutboundBindAddress setting. - Fixes the bug part of bug 798. + Fixes the bug part of bug 798. Bugfix on 0.1.2.2-alpha. + - When our circuit fails at the first hop (e.g. we get a destroy + cell back), avoid using that OR connection anymore, and also + tell all the one-hop directory requests waiting for it that they + should fail. Bugfix on 0.2.1.3-alpha. + Changes in version 0.2.1.10-alpha - 2009-01-06 o Major bugfixes: diff --git a/src/or/circuituse.c b/src/or/circuituse.c index e6feb2250d..84aae1768c 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -802,7 +802,7 @@ circuit_build_failed(origin_circuit_t *circ) /* We failed at the first hop. If there's an OR connection to blame, blame it. */ or_connection_t *n_conn = NULL; - const char *n_conn_id = NULL; + const char *n_conn_id = circ->_base.n_hop->identity_digest; if (circ->_base.n_conn) { n_conn = circ->_base.n_conn; if (n_conn) n_conn_id = n_conn->identity_digest; diff --git a/src/or/or.h b/src/or/or.h index de1db89390..438424d97e 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -391,7 +391,7 @@ typedef enum { #define EXIT_PURPOSE_RESOLVE 2 #define _EXIT_PURPOSE_MAX 2 -/* !!!! If any connection purpose is ever over over 31, we must grow the type +/* !!!! If any connection purpose is ever over 31, we must grow the type * field in connection_t. */ /** Circuit state: I'm the origin, still haven't done all my handshakes. */