[tor-commits] [tor/release-0.4.1] rendservice: Always use a 3-hop path when a v2 single onion rend fails
dgoulet at torproject.org
dgoulet at torproject.org
Thu Aug 29 12:59:05 UTC 2019
commit dc08f8ac70e95b9a76f86a5e15dfcabd7ada25b9
Author: teor <teor at torproject.org>
Date: Fri Aug 23 14:38:54 2019 +1000
rendservice: Always use a 3-hop path when a v2 single onion rend fails
Previously, we used a 1-hop path when a single onion rend failed
immediately, and a 3-hop path when it failed after trying to build
a circuit.
Fixes bug 23818; bugfix on 0.2.9.3-alpha.
---
src/or/rendservice.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index 32b856452..f145e9d69 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -2073,8 +2073,12 @@ rend_service_receive_introduction(origin_circuit_t *circuit,
int flags = CIRCLAUNCH_NEED_CAPACITY | CIRCLAUNCH_IS_INTERNAL;
if (circ_needs_uptime) flags |= CIRCLAUNCH_NEED_UPTIME;
/* A Single Onion Service only uses a direct connection if its
- * firewall rules permit direct connections to the address. */
- if (rend_service_use_direct_connection(options, rp)) {
+ * firewall rules permit direct connections to the address.
+ *
+ * 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.
+ * See the comment in rend_service_relauch_rendezvous() for details. */
+ if (rend_service_use_direct_connection(options, rp) && i == 0) {
flags = flags | CIRCLAUNCH_ONEHOP_TUNNEL;
}
launched = circuit_launch_by_extend_info(
More information about the tor-commits
mailing list