mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 23:53:32 +01:00
Merge branch 'maint-0.3.4'
This commit is contained in:
commit
08a1619e7f
@ -2241,9 +2241,20 @@ compute_frac_paths_available(const networkstatus_t *consensus,
|
|||||||
count_usable_descriptors(num_present_out, num_usable_out,
|
count_usable_descriptors(num_present_out, num_usable_out,
|
||||||
mid, consensus, now, NULL,
|
mid, consensus, now, NULL,
|
||||||
USABLE_DESCRIPTOR_ALL);
|
USABLE_DESCRIPTOR_ALL);
|
||||||
|
log_debug(LD_NET,
|
||||||
|
"%s: %d present, %d usable",
|
||||||
|
"mid",
|
||||||
|
np,
|
||||||
|
nu);
|
||||||
|
|
||||||
if (options->EntryNodes) {
|
if (options->EntryNodes) {
|
||||||
count_usable_descriptors(&np, &nu, guards, consensus, now,
|
count_usable_descriptors(&np, &nu, guards, consensus, now,
|
||||||
options->EntryNodes, USABLE_DESCRIPTOR_ALL);
|
options->EntryNodes, USABLE_DESCRIPTOR_ALL);
|
||||||
|
log_debug(LD_NET,
|
||||||
|
"%s: %d present, %d usable",
|
||||||
|
"guard",
|
||||||
|
np,
|
||||||
|
nu);
|
||||||
} else {
|
} else {
|
||||||
SMARTLIST_FOREACH(mid, const node_t *, node, {
|
SMARTLIST_FOREACH(mid, const node_t *, node, {
|
||||||
if (authdir) {
|
if (authdir) {
|
||||||
@ -2254,6 +2265,10 @@ compute_frac_paths_available(const networkstatus_t *consensus,
|
|||||||
smartlist_add(guards, (node_t*)node);
|
smartlist_add(guards, (node_t*)node);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
log_debug(LD_NET,
|
||||||
|
"%s: %d possible",
|
||||||
|
"guard",
|
||||||
|
smartlist_len(guards));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* All nodes with exit policy and flag */
|
/* All nodes with exit policy and flag */
|
||||||
@ -2265,25 +2280,30 @@ compute_frac_paths_available(const networkstatus_t *consensus,
|
|||||||
np,
|
np,
|
||||||
nu);
|
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 */
|
* building exit paths */
|
||||||
/* Update our understanding of whether the consensus has exits */
|
/* Update our understanding of whether the consensus has exits */
|
||||||
consensus_path_type_t old_have_consensus_path = have_consensus_path;
|
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_EXIT :
|
||||||
CONSENSUS_PATH_INTERNAL);
|
CONSENSUS_PATH_INTERNAL);
|
||||||
|
|
||||||
if (have_consensus_path == CONSENSUS_PATH_INTERNAL
|
if (old_have_consensus_path != have_consensus_path) {
|
||||||
&& old_have_consensus_path != have_consensus_path) {
|
if (have_consensus_path == CONSENSUS_PATH_INTERNAL) {
|
||||||
log_notice(LD_NET,
|
log_notice(LD_NET,
|
||||||
"The current consensus has no exit nodes. "
|
"The current consensus has no exit nodes. "
|
||||||
"Tor can only build internal paths, "
|
"Tor can only build internal paths, "
|
||||||
"such as paths to hidden services.");
|
"such as paths to onion services.");
|
||||||
|
|
||||||
/* However, exit nodes can reachability self-test using this consensus,
|
/* However, exit nodes can reachability self-test using this consensus,
|
||||||
* join the network, and appear in a later consensus. This will allow
|
* 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
|
* the network to build exit paths, such as paths for world wide web
|
||||||
* browsing (as distinct from hidden service web browsing). */
|
* 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, 1);
|
f_guard = frac_nodes_with_descriptors(guards, WEIGHT_FOR_GUARD, 1);
|
||||||
@ -2373,14 +2393,14 @@ compute_frac_paths_available(const networkstatus_t *consensus,
|
|||||||
tor_asprintf(status_out,
|
tor_asprintf(status_out,
|
||||||
"%d%% of guards bw, "
|
"%d%% of guards bw, "
|
||||||
"%d%% of midpoint bw, and "
|
"%d%% of midpoint bw, and "
|
||||||
"%d%% of exit bw%s = "
|
"%d%% of %s = "
|
||||||
"%d%% of path bw",
|
"%d%% of path bw",
|
||||||
(int)(f_guard*100),
|
(int)(f_guard*100),
|
||||||
(int)(f_mid*100),
|
(int)(f_mid*100),
|
||||||
(int)(f_exit*100),
|
(int)(f_exit*100),
|
||||||
(router_have_consensus_path() == CONSENSUS_PATH_EXIT ?
|
(router_have_consensus_path() == CONSENSUS_PATH_EXIT ?
|
||||||
"" :
|
"exit bw" :
|
||||||
" (no exits in consensus)"),
|
"end bw (no exits in consensus)"),
|
||||||
(int)(f_path*100));
|
(int)(f_path*100));
|
||||||
|
|
||||||
return f_path;
|
return f_path;
|
||||||
|
Loading…
Reference in New Issue
Block a user