summaryrefslogtreecommitdiff
path: root/src/feature/hs
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2022-10-26 15:07:42 -0400
committerDavid Goulet <dgoulet@torproject.org>2022-10-26 15:07:42 -0400
commitfb21387882221e485d8db52ee21e353ec745fda7 (patch)
tree0a0717d4ac66423c2083b530a4585cd6663cda15 /src/feature/hs
parentca135a127d3641dde301eb7dfa4f50edce878a0e (diff)
parent6300a9548dcbe11935db374c7e7455743f3283c3 (diff)
downloadtor-fb21387882221e485d8db52ee21e353ec745fda7.tar.gz
tor-fb21387882221e485d8db52ee21e353ec745fda7.zip
Merge branch 'tor-gitlab/mr/637'
Diffstat (limited to 'src/feature/hs')
-rw-r--r--src/feature/hs/hs_circuit.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/feature/hs/hs_circuit.c b/src/feature/hs/hs_circuit.c
index d253802f79..edb5e692e7 100644
--- a/src/feature/hs/hs_circuit.c
+++ b/src/feature/hs/hs_circuit.c
@@ -1319,6 +1319,17 @@ hs_circ_cleanup_on_repurpose(circuit_t *circ)
if (circ->hs_token) {
hs_circuitmap_remove_circuit(circ);
}
+
+ switch (circ->purpose) {
+ case CIRCUIT_PURPOSE_S_CONNECT_REND:
+ /* This circuit was connecting to a rendezvous point but it is being
+ * repurposed so we need to relaunch an attempt else the client will be
+ * left hanging waiting for the rendezvous. */
+ hs_circ_retry_service_rendezvous_point(TO_ORIGIN_CIRCUIT(circ));
+ break;
+ default:
+ break;
+ }
}
/** Return true iff the given established client rendezvous circuit was sent