[tor-commits] [tor/master] Bootstrap: try harder to get descriptors in non-exit test networks
nickm at torproject.org
nickm at torproject.org
Fri Aug 24 16:46:11 UTC 2018
commit 7a5896d5d444d2e32190063e38abb23030daae06
Author: teor <teor at torproject.org>
Date: Fri Aug 24 11:59:47 2018 +1000
Bootstrap: try harder to get descriptors in non-exit test networks
Use the mid weight for the third hop when there are no exits.
Fixes bug 27237; bugfix on 0.2.6.2-alpha.
---
changes/bug27237 | 4 ++++
src/feature/nodelist/nodelist.c | 11 ++++++++---
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/changes/bug27237 b/changes/bug27237
new file mode 100644
index 000000000..6fa70d785
--- /dev/null
+++ b/changes/bug27237
@@ -0,0 +1,4 @@
+ o Minor bugfixes (bootstrap):
+ - Try harder to get descriptors in non-exit test networks, by
+ using the mid weight for the third hop when there are no exits.
+ Fixes bug 27237; bugfix on 0.2.6.2-alpha.
diff --git a/src/feature/nodelist/nodelist.c b/src/feature/nodelist/nodelist.c
index bf298337a..07edc5aba 100644
--- a/src/feature/nodelist/nodelist.c
+++ b/src/feature/nodelist/nodelist.c
@@ -2361,9 +2361,14 @@ compute_frac_paths_available(const networkstatus_t *consensus,
f_exit = f_myexit;
}
- /* if the consensus has no exits, treat the exit fraction as 100% */
+ /* if the consensus has no exits, we can only build onion service paths,
+ * which are G - M - M. So use the middle fraction for the exit fraction. */
if (router_have_consensus_path() != CONSENSUS_PATH_EXIT) {
- f_exit = 1.0;
+ /* If there are no exits in the consensus, then f_exit is always 0, so
+ * it is safe to replace f_exit with f_mid. */
+ if (!BUG(f_exit > 0.0)) {
+ f_exit = f_mid;
+ }
}
f_path = f_guard * f_mid * f_exit;
@@ -2379,7 +2384,7 @@ compute_frac_paths_available(const networkstatus_t *consensus,
(int)(f_exit*100),
(router_have_consensus_path() == CONSENSUS_PATH_EXIT ?
"" :
- " (no exits in consensus)"),
+ " (no exits in consensus, using mid)"),
(int)(f_path*100));
return f_path;
More information about the tor-commits
mailing list