Loading changes/bug12399 0 → 100644 +3 −0 Original line number Diff line number Diff line o Minor bugfixes (logging): - Change log level of message "Hash of session info was not as expected" to LOG_PROTOCOL_WARN. Fixes bug 12399; bugfix on 0.1.1.10-alpha. changes/bug23507 0 → 100644 +5 −0 Original line number Diff line number Diff line o Minor bugfixes (v3 single onion services): - Make v3 single onion services fall back to a 3-hop intro, when there all intro points are unreachable via a 1-hop path. Previously, v3 single onion services failed when all intro nodes were unreachable via a 1-hop path. Fixes bug 23507; bugfix on 0.3.2.1-alpha. changes/bug23818_v2 0 → 100644 +6 −0 Original line number Diff line number Diff line o Minor bugfixes (v2 single onion services): - Always retry v2 single onion service intro and rend circuits with a 3-hop path. Previously, v2 single onion services used a 3-hop path when rend circuits were retried after a remote or delayed failure, but a 1-hop path for immediate retries. Fixes bug 23818; bugfix on 0.2.9.3-alpha. changes/bug23818_v3 0 → 100644 +6 −0 Original line number Diff line number Diff line o Minor bugfixes (v3 single onion services): - Always retry v3 single onion service intro and rend circuits with a 3-hop path. Previously, v3 single onion services used a 3-hop path when rend circuits were retried after a remote or delayed failure, but a 1-hop path for immediate retries. Fixes bug 23818; bugfix on 0.3.2.1-alpha. src/feature/hs/hs_circuit.c +22 −6 Original line number Diff line number Diff line Loading @@ -405,8 +405,12 @@ launch_rendezvous_point_circuit(const hs_service_t *service, if (circ_needs_uptime) { circ_flags |= CIRCLAUNCH_NEED_UPTIME; } /* Firewall and policies are checked when getting the extend info. */ if (service->config.is_single_onion) { /* Firewall and policies are checked when getting the extend info. * * 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 retry_service_rendezvous_point() for details. */ if (service->config.is_single_onion && i == 0) { circ_flags |= CIRCLAUNCH_ONEHOP_TUNNEL; } Loading Loading @@ -754,13 +758,16 @@ hs_circ_retry_service_rendezvous_point(origin_circuit_t *circ) } /* For a given service and a service intro point, launch a circuit to the * extend info ei. If the service is a single onion, a one-hop circuit will be * requested. Return 0 if the circuit was successfully launched and tagged * extend info ei. If the service is a single onion, and direct_conn is true, * a one-hop circuit will be requested. * * Return 0 if the circuit was successfully launched and tagged * with the correct identifier. On error, a negative value is returned. */ int hs_circ_launch_intro_point(hs_service_t *service, const hs_service_intro_point_t *ip, extend_info_t *ei) extend_info_t *ei, bool direct_conn) { /* Standard flags for introduction circuit. */ int ret = -1, circ_flags = CIRCLAUNCH_NEED_UPTIME | CIRCLAUNCH_IS_INTERNAL; Loading @@ -772,7 +779,16 @@ hs_circ_launch_intro_point(hs_service_t *service, /* Update circuit flags in case of a single onion service that requires a * direct connection. */ if (service->config.is_single_onion) { tor_assert_nonfatal(ip->circuit_retries > 0); /* Only single onion services can make direct conns */ if (BUG(!service->config.is_single_onion && direct_conn)) { goto end; } /* 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.) */ if (direct_conn && ip->circuit_retries == 1) { circ_flags |= CIRCLAUNCH_ONEHOP_TUNNEL; } Loading Loading
changes/bug12399 0 → 100644 +3 −0 Original line number Diff line number Diff line o Minor bugfixes (logging): - Change log level of message "Hash of session info was not as expected" to LOG_PROTOCOL_WARN. Fixes bug 12399; bugfix on 0.1.1.10-alpha.
changes/bug23507 0 → 100644 +5 −0 Original line number Diff line number Diff line o Minor bugfixes (v3 single onion services): - Make v3 single onion services fall back to a 3-hop intro, when there all intro points are unreachable via a 1-hop path. Previously, v3 single onion services failed when all intro nodes were unreachable via a 1-hop path. Fixes bug 23507; bugfix on 0.3.2.1-alpha.
changes/bug23818_v2 0 → 100644 +6 −0 Original line number Diff line number Diff line o Minor bugfixes (v2 single onion services): - Always retry v2 single onion service intro and rend circuits with a 3-hop path. Previously, v2 single onion services used a 3-hop path when rend circuits were retried after a remote or delayed failure, but a 1-hop path for immediate retries. Fixes bug 23818; bugfix on 0.2.9.3-alpha.
changes/bug23818_v3 0 → 100644 +6 −0 Original line number Diff line number Diff line o Minor bugfixes (v3 single onion services): - Always retry v3 single onion service intro and rend circuits with a 3-hop path. Previously, v3 single onion services used a 3-hop path when rend circuits were retried after a remote or delayed failure, but a 1-hop path for immediate retries. Fixes bug 23818; bugfix on 0.3.2.1-alpha.
src/feature/hs/hs_circuit.c +22 −6 Original line number Diff line number Diff line Loading @@ -405,8 +405,12 @@ launch_rendezvous_point_circuit(const hs_service_t *service, if (circ_needs_uptime) { circ_flags |= CIRCLAUNCH_NEED_UPTIME; } /* Firewall and policies are checked when getting the extend info. */ if (service->config.is_single_onion) { /* Firewall and policies are checked when getting the extend info. * * 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 retry_service_rendezvous_point() for details. */ if (service->config.is_single_onion && i == 0) { circ_flags |= CIRCLAUNCH_ONEHOP_TUNNEL; } Loading Loading @@ -754,13 +758,16 @@ hs_circ_retry_service_rendezvous_point(origin_circuit_t *circ) } /* For a given service and a service intro point, launch a circuit to the * extend info ei. If the service is a single onion, a one-hop circuit will be * requested. Return 0 if the circuit was successfully launched and tagged * extend info ei. If the service is a single onion, and direct_conn is true, * a one-hop circuit will be requested. * * Return 0 if the circuit was successfully launched and tagged * with the correct identifier. On error, a negative value is returned. */ int hs_circ_launch_intro_point(hs_service_t *service, const hs_service_intro_point_t *ip, extend_info_t *ei) extend_info_t *ei, bool direct_conn) { /* Standard flags for introduction circuit. */ int ret = -1, circ_flags = CIRCLAUNCH_NEED_UPTIME | CIRCLAUNCH_IS_INTERNAL; Loading @@ -772,7 +779,16 @@ hs_circ_launch_intro_point(hs_service_t *service, /* Update circuit flags in case of a single onion service that requires a * direct connection. */ if (service->config.is_single_onion) { tor_assert_nonfatal(ip->circuit_retries > 0); /* Only single onion services can make direct conns */ if (BUG(!service->config.is_single_onion && direct_conn)) { goto end; } /* 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.) */ if (direct_conn && ip->circuit_retries == 1) { circ_flags |= CIRCLAUNCH_ONEHOP_TUNNEL; } Loading