diff options
author | Roger Dingledine <arma@torproject.org> | 2006-06-13 05:51:28 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2006-06-13 05:51:28 +0000 |
commit | 279e86f3c88b19ae4a65140567151c183def5931 (patch) | |
tree | 8bcc8efcfb2a5896ecf0de90bb104075f6bb935c /src/or/circuitbuild.c | |
parent | a20a384b09c13d9202c5de9a009b53502bc83f65 (diff) | |
download | tor-279e86f3c88b19ae4a65140567151c183def5931.tar tor-279e86f3c88b19ae4a65140567151c183def5931.tar.gz |
Defense in depth: fix the reachability bug a second way too.
Now if we establish a connection with the right digest, regardless
of what the addr/port is, and we have pending create cells, use it.
svn:r6614
Diffstat (limited to 'src/or/circuitbuild.c')
-rw-r--r-- | src/or/circuitbuild.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 7c09a25f5..d38de14bb 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -420,16 +420,8 @@ circuit_n_conn_done(connection_t *or_conn, int status) continue; tor_assert(circ->state == CIRCUIT_STATE_OR_WAIT); if (!circ->n_conn && - circ->n_addr == or_conn->addr && - circ->n_port == or_conn->port) { - if (memcmp(or_conn->identity_digest, circ->n_conn_id_digest, - DIGEST_LEN)) { - log_fn(LOG_PROTOCOL_WARN, LD_CIRC, - "Pending circuit to %s:%d is intended for different digest!", - or_conn->address, or_conn->port); - circuit_mark_for_close(circ, END_CIRC_REASON_OR_IDENTITY); - continue; - } + !memcmp(or_conn->identity_digest, circ->n_conn_id_digest, + DIGEST_LEN)) { if (!status) { /* or_conn failed; close circ */ log_info(LD_CIRC,"or_conn failed. Closing circ."); circuit_mark_for_close(circ, END_CIRC_REASON_OR_CONN_CLOSED); |