tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit fb21387882221e485d8db52ee21e353ec745fda7
parent ca135a127d3641dde301eb7dfa4f50edce878a0e
Author: David Goulet <dgoulet@torproject.org>
Date:   Wed, 26 Oct 2022 15:07:42 -0400

Merge branch 'tor-gitlab/mr/637'

Diffstat:
Achanges/ticket40696 | 3+++
Msrc/feature/hs/hs_circuit.c | 11+++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/changes/ticket40696 b/changes/ticket40696 @@ -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. diff --git 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