summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2008-11-03 07:00:56 +0000
committerRoger Dingledine <arma@torproject.org>2008-11-03 07:00:56 +0000
commitebe4ef12b9ae71cec50a5fced923057e5a3e5f54 (patch)
tree121d2b767dae524f29d97e87bf66477d6f733b06
parent3e5a584d37b0771152fd96131a0aa8d486d5b2fc (diff)
downloadtor-ebe4ef12b9ae71cec50a5fced923057e5a3e5f54.tar.gz
tor-ebe4ef12b9ae71cec50a5fced923057e5a3e5f54.zip
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:r17184
-rw-r--r--src/or/circuitbuild.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index f9e7981106..e7ab333e82 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -1168,7 +1168,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))