mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
hs: Retry rdv circuit if repurposed
This can happen if our measurement subsystem decides to snatch it. Fixes #40696 Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
0a49e04691
commit
a7aa22a4e7
3
changes/ticket40696
Normal file
3
changes/ticket40696
Normal file
@ -0,0 +1,3 @@
|
||||
o Minor bugfixes (onion service):
|
||||
- Make the service retry a rendezvous if the circuit is being repurposed for
|
||||
measurements. Fixes bug 40696; bugfix on 0.3.5.1-alpha.
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user