summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-07-06 18:34:45 +0000
committerNick Mathewson <nickm@torproject.org>2008-07-06 18:34:45 +0000
commit615c64efb851d8272069701c1bee3ef2bdca3e81 (patch)
tree6d2c3989b5cafc66d5a3e81937d8adcfef8e2211 /src
parent1a564901e41adc0e3b6dc9c5beb0dd4fec734331 (diff)
downloadtor-615c64efb851d8272069701c1bee3ef2bdca3e81.tar.gz
tor-615c64efb851d8272069701c1bee3ef2bdca3e81.zip
Apply fix from chrisw: call connection_ap_attach_pending when we get a rendezvous2 or rendezvous_established call. This is a bit brute-foce, but it is better than we had before, and might not even show up on profiles. Backport candidate, once tested.
svn:r15699
Diffstat (limited to 'src')
-rw-r--r--src/or/rendclient.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index b5eed4bca8..91bb36bb2c 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -543,6 +543,12 @@ rend_client_rendezvous_acked(origin_circuit_t *circ, const char *request,
log_info(LD_REND,"Got rendezvous ack. This circuit is now ready for "
"rendezvous.");
circ->_base.purpose = CIRCUIT_PURPOSE_C_REND_READY;
+ /*XXXX021 This is a pretty brute approach. It'd be better to
+ * attach only the connections that are waiting on this circuit, rather
+ * than trying to attach them all. */
+ /* If we already have the introduction circuit, built make sure we send
+ * the INTRODUCE cell _now_ */
+ connection_ap_attach_pending();
return 0;
}
@@ -605,6 +611,11 @@ rend_client_receive_rendezvous(origin_circuit_t *circ, const char *request,
onion_append_to_cpath(&circ->cpath, hop);
circ->build_state->pending_final_cpath = NULL; /* prevent double-free */
+ /*XXXX021 This is a pretty brute approach. It'd be better to
+ * attach only the connections that are waiting on this circuit, rather
+ * than trying to attach them all. */
+ /* */
+ connection_ap_attach_pending();
return 0;
err:
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_TORPROTOCOL);