summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-12-17 13:14:47 +0000
committerNick Mathewson <nickm@torproject.org>2008-12-17 13:14:47 +0000
commit76eed8cc18c55693fe47226572417fe4b8348fdc (patch)
treebdcd4c4a019f002ed9202e2474222a8561928436
parent119fd23f1eb560867c90cec9c4d8d7fae2c8ac1a (diff)
downloadtor-76eed8cc18c55693fe47226572417fe4b8348fdc.tar.gz
tor-76eed8cc18c55693fe47226572417fe4b8348fdc.zip
Backport r17184: when building preemptive circuits, ignore streams
that have a chosen exit node in mind already. otherwise we get tricked into trying to build a new circuit that will handle them. svn:r17639
-rw-r--r--doc/TODO.0204
-rw-r--r--src/or/circuitbuild.c3
2 files changed, 4 insertions, 3 deletions
diff --git a/doc/TODO.020 b/doc/TODO.020
index 2d4d3b2298..fcbd39a20d 100644
--- a/doc/TODO.020
+++ b/doc/TODO.020
@@ -14,8 +14,8 @@ Backport for 0.2.0 once better tested:
r17171 instead, to be even more resistant to poisoning.]
o r17091: distinguish "no routers support pending circuits" from
"no circuits are pending."
- - See also r17181...
- - ... and r17184.
+ o See also r17181...
+ o ... and r17184.
- r17137: send END cell in response to connect to nonexistent hidserv port.
- r17138: reject *:* servers should never do DNS lookups.
- r17139: Fix another case of overriding .exit choices.
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 65bd16afea..49ac74d65b 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -1163,7 +1163,8 @@ ap_stream_wants_exit_attention(connection_t *conn)
conn->state == AP_CONN_STATE_CIRCUIT_WAIT &&
!conn->marked_for_close &&
!(TO_EDGE_CONN(conn)->want_onehop) && /* ignore one-hop streams */
- !(TO_EDGE_CONN(conn)->use_begindir) && /* ignore targetted dir fetches */
+ !(TO_EDGE_CONN(conn)->use_begindir) && /* ignore targeted dir fetches */
+ !(TO_EDGE_CONN(conn)->chosen_exit_name) && /* ignore defined streams */
!connection_edge_is_rendezvous_stream(TO_EDGE_CONN(conn)) &&
!circuit_stream_is_being_handled(TO_EDGE_CONN(conn), 0,
MIN_CIRCUITS_HANDLING_STREAM))