Browse Source

Mark each intro circ with the rend cookie sent in its INTRODUCE1 cell

Needed by fix for #4759.
Robert Ransom 12 years ago
parent
commit
66f77561c0
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/or/rendclient.c

+ 6 - 0
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,