Unverified Commit 229a9824 authored by teor's avatar teor
Browse files

hs: Always use a 3-hop path when a v3 single onion intro fails

Previously, we always used a 1-hop path, no matter how many times a v3
single onion intro failed.

Fixes bug 23818; bugfix on 0.3.2.1-alpha.
parent c94904b3
......@@ -775,8 +775,15 @@ hs_circ_launch_intro_point(hs_service_t *service,
tor_assert(ei);
/* Update circuit flags in case of a single onion service that requires a
* direct connection. */
if (service->config.is_single_onion) {
* direct connection.
*
* We only use a one-hop path on the first attempt. If the first attempt
* fails, we use a 3-hop path for reachability / reliability.
* (Unlike v2, retries is incremented by the caller before it calls this
* function.)
*/
tor_assert_nonfatal(ip->circuit_retries > 0);
if (service->config.is_single_onion && ip->circuit_retries == 1) {
circ_flags |= CIRCLAUNCH_ONEHOP_TUNNEL;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment