|
@@ -428,30 +428,54 @@ hs_circuitmap_get_rend_circ_client_side(const uint8_t *cookie)
|
|
|
{
|
|
|
origin_circuit_t *circ = NULL;
|
|
|
|
|
|
- circ = hs_circuitmap_get_origin_circuit(HS_TOKEN_REND_CLIENT_SIDE,
|
|
|
- REND_TOKEN_LEN, cookie,
|
|
|
- CIRCUIT_PURPOSE_C_REND_READY);
|
|
|
+ circ = hs_circuitmap_get_established_rend_circ_client_side(cookie);
|
|
|
if (circ) {
|
|
|
return circ;
|
|
|
}
|
|
|
|
|
|
circ = hs_circuitmap_get_origin_circuit(HS_TOKEN_REND_CLIENT_SIDE,
|
|
|
REND_TOKEN_LEN, cookie,
|
|
|
- CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED);
|
|
|
+ CIRCUIT_PURPOSE_C_ESTABLISH_REND);
|
|
|
+ return circ;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+ * rendezvous <b>cookie</b>. It will look for circuits with the following
|
|
|
+ * purposes:
|
|
|
+ *
|
|
|
+ * a) CIRCUIT_PURPOSE_C_REND_READY: Established rend circuit (received
|
|
|
+ * RENDEZVOUS_ESTABLISHED). Waiting for RENDEZVOUS2 from service, and for
|
|
|
+ * INTRODUCE_ACK from intro point.
|
|
|
+ *
|
|
|
+ * b) CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED: Established rend circuit and
|
|
|
+ * introduce circuit acked. Waiting for RENDEZVOUS2 from service.
|
|
|
+ *
|
|
|
+ * c) CIRCUIT_PURPOSE_C_REND_JOINED: Established rend circuit and received
|
|
|
+ * RENDEZVOUS2 from service.
|
|
|
+ *
|
|
|
+ * Return NULL if no such circuit is found in the circuitmap. */
|
|
|
+origin_circuit_t *
|
|
|
+hs_circuitmap_get_established_rend_circ_client_side(const uint8_t *cookie)
|
|
|
+{
|
|
|
+ origin_circuit_t *circ = NULL;
|
|
|
+
|
|
|
+ circ = hs_circuitmap_get_origin_circuit(HS_TOKEN_REND_CLIENT_SIDE,
|
|
|
+ REND_TOKEN_LEN, cookie,
|
|
|
+ CIRCUIT_PURPOSE_C_REND_READY);
|
|
|
if (circ) {
|
|
|
return circ;
|
|
|
}
|
|
|
|
|
|
circ = hs_circuitmap_get_origin_circuit(HS_TOKEN_REND_CLIENT_SIDE,
|
|
|
REND_TOKEN_LEN, cookie,
|
|
|
- CIRCUIT_PURPOSE_C_REND_JOINED);
|
|
|
+ CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED);
|
|
|
if (circ) {
|
|
|
return circ;
|
|
|
}
|
|
|
|
|
|
circ = hs_circuitmap_get_origin_circuit(HS_TOKEN_REND_CLIENT_SIDE,
|
|
|
REND_TOKEN_LEN, cookie,
|
|
|
- CIRCUIT_PURPOSE_C_ESTABLISH_REND);
|
|
|
+ CIRCUIT_PURPOSE_C_REND_JOINED);
|
|
|
return circ;
|
|
|
}
|
|
|
|