num_bridges_usable(): only count configured bridges.

When this function was implemented, it counted all the entry guards
in the bridge set.  But this included previously configured bridges,
as well as currently configured ones!  Instead, only count the
_filtered_ bridges (ones that are configured and possibly reachable)
as maybe usable.

Fixes bug 29875; bugfix on 0.3.0.1-alpha.
This commit is contained in:
Nick Mathewson 2019-05-31 12:19:29 -04:00
parent 5b3c886584
commit 8015979eeb

View File

@ -3300,6 +3300,9 @@ num_bridges_usable,(int use_maybe_reachable))
} }
SMARTLIST_FOREACH_BEGIN(gs->sampled_entry_guards, entry_guard_t *, guard) { SMARTLIST_FOREACH_BEGIN(gs->sampled_entry_guards, entry_guard_t *, guard) {
/* Not a bridge, or not one we are configured to be able to use. */
if (! guard->is_filtered_guard)
continue;
/* Definitely not usable */ /* Definitely not usable */
if (guard->is_reachable == GUARD_REACHABLE_NO) if (guard->is_reachable == GUARD_REACHABLE_NO)
continue; continue;