aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorRobert Ransom <rransom.8774@gmail.com>2011-12-22 06:45:45 -0800
committerRobert Ransom <rransom.8774@gmail.com>2011-12-22 06:45:45 -0800
commit66f77561c0bb93bf768b2764137ab1b5e4fc04a4 (patch)
tree7a0a0b06618c899aa1a55357e978d409751c0194 /src/or
parentd7531b2adc6d09e33f9a4a3accc4cf3fe28284d6 (diff)
downloadtor-66f77561c0bb93bf768b2764137ab1b5e4fc04a4.tar
tor-66f77561c0bb93bf768b2764137ab1b5e4fc04a4.tar.gz
Mark each intro circ with the rend cookie sent in its INTRODUCE1 cell
Needed by fix for #4759.
Diffstat (limited to 'src/or')
-rw-r--r--src/or/rendclient.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index 8aae8c5cb..d9b210ae3 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -275,6 +275,12 @@ rend_client_send_introduction(origin_circuit_t *introcirc,
payload_len = DIGEST_LEN + r;
tor_assert(payload_len <= RELAY_PAYLOAD_SIZE); /* we overran something */
+ /* Copy the rendezvous cookie from rendcirc to introcirc, so that
+ * when introcirc gets an ack, we can change the state of the right
+ * rendezvous circuit. */
+ memcpy(rendcirc->rend_data->rend_cookie, introcirc->rend_data->rend_cookie,
+ REND_COOKIE_LEN);
+
log_info(LD_REND, "Sending an INTRODUCE1 cell");
if (relay_send_command_from_edge(0, TO_CIRCUIT(introcirc),
RELAY_COMMAND_INTRODUCE1,