mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +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) {
|
if (circ->hs_token) {
|
||||||
hs_circuitmap_remove_circuit(circ);
|
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
|
/** Return true iff the given established client rendezvous circuit was sent
|
||||||
|
Loading…
Reference in New Issue
Block a user