diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-08-24 12:05:39 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-08-24 12:05:39 -0400 |
commit | eb75966720a15b89b0f6a814c4e1d8446479db08 (patch) | |
tree | 90ec0fcc3d163eab9919d82c6b166616f100adbc | |
parent | 8a4b41f24146b502bb85fcfc053a1240c7e79439 (diff) | |
parent | dd27e17cccc139d55433b313ffee1030cb0cba9f (diff) | |
download | tor-eb75966720a15b89b0f6a814c4e1d8446479db08.tar.gz tor-eb75966720a15b89b0f6a814c4e1d8446479db08.zip |
Merge branch 'maint-0.3.4' into release-0.3.4
-rw-r--r-- | src/or/nodelist.c | 52 |
1 files changed, 36 insertions, 16 deletions
diff --git a/src/or/nodelist.c b/src/or/nodelist.c index 07632861d1..7540da7eb6 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -2216,9 +2216,20 @@ compute_frac_paths_available(const networkstatus_t *consensus, count_usable_descriptors(num_present_out, num_usable_out, mid, consensus, now, NULL, USABLE_DESCRIPTOR_ALL); + log_debug(LD_NET, + "%s: %d present, %d usable", + "mid", + np, + nu); + if (options->EntryNodes) { count_usable_descriptors(&np, &nu, guards, consensus, now, options->EntryNodes, USABLE_DESCRIPTOR_ALL); + log_debug(LD_NET, + "%s: %d present, %d usable", + "guard", + np, + nu); } else { SMARTLIST_FOREACH(mid, const node_t *, node, { if (authdir) { @@ -2229,6 +2240,10 @@ compute_frac_paths_available(const networkstatus_t *consensus, smartlist_add(guards, (node_t*)node); } }); + log_debug(LD_NET, + "%s: %d possible", + "guard", + smartlist_len(guards)); } /* All nodes with exit policy and flag */ @@ -2240,25 +2255,30 @@ compute_frac_paths_available(const networkstatus_t *consensus, np, nu); - /* We need at least 1 exit usable in the consensus to consider + /* We need at least 1 exit (flag and policy) in the consensus to consider * building exit paths */ /* Update our understanding of whether the consensus has exits */ consensus_path_type_t old_have_consensus_path = have_consensus_path; - have_consensus_path = ((nu > 0) ? + have_consensus_path = ((np > 0) ? CONSENSUS_PATH_EXIT : CONSENSUS_PATH_INTERNAL); - if (have_consensus_path == CONSENSUS_PATH_INTERNAL - && old_have_consensus_path != have_consensus_path) { - log_notice(LD_NET, - "The current consensus has no exit nodes. " - "Tor can only build internal paths, " - "such as paths to hidden services."); - - /* However, exit nodes can reachability self-test using this consensus, - * join the network, and appear in a later consensus. This will allow - * the network to build exit paths, such as paths for world wide web - * browsing (as distinct from hidden service web browsing). */ + if (old_have_consensus_path != have_consensus_path) { + if (have_consensus_path == CONSENSUS_PATH_INTERNAL) { + log_notice(LD_NET, + "The current consensus has no exit nodes. " + "Tor can only build internal paths, " + "such as paths to onion services."); + + /* However, exit nodes can reachability self-test using this consensus, + * join the network, and appear in a later consensus. This will allow + * the network to build exit paths, such as paths for world wide web + * browsing (as distinct from hidden service web browsing). */ + } else if (old_have_consensus_path == CONSENSUS_PATH_INTERNAL) { + log_notice(LD_NET, + "The current consensus contains exit nodes. " + "Tor can build exit and internal paths."); + } } f_guard = frac_nodes_with_descriptors(guards, WEIGHT_FOR_GUARD); @@ -2342,14 +2362,14 @@ compute_frac_paths_available(const networkstatus_t *consensus, tor_asprintf(status_out, "%d%% of guards bw, " "%d%% of midpoint bw, and " - "%d%% of exit bw%s = " + "%d%% of %s = " "%d%% of path bw", (int)(f_guard*100), (int)(f_mid*100), (int)(f_exit*100), (router_have_consensus_path() == CONSENSUS_PATH_EXIT ? - "" : - " (no exits in consensus)"), + "exit bw" : + "end bw (no exits in consensus)"), (int)(f_path*100)); return f_path; |