Merge branch 'bug29875_035' into bug29875_master

This commit is contained in:
Nick Mathewson 2019-05-31 12:40:43 -04:00
commit fd8beab4dd
3 changed files with 16 additions and 1 deletions

11
changes/bug29875 Normal file
View File

@ -0,0 +1,11 @@
o Major bugfixes (bridges):
- Do not count previously configured working bridges towards our total of
working bridges. Previously, when Tor's list of bridges changed, it
would think that the old bridges were still usable, and delay fetching
router descriptors for the new ones. Fixes part of bug 29875; bugfix
on 0.3.0.1-alpha.
- Consider our directory information to have changed when our list of
bridges changes. Previously, Tor would not re-compute the status of its
directory information when bridges changed, and therefore would not
realize that it was no longer able to build circuits. Fixes part of bug
29875.

View File

@ -2387,7 +2387,8 @@ options_act(const or_options_t *old_options)
if (!bool_eq(directory_fetches_dir_info_early(options),
directory_fetches_dir_info_early(old_options)) ||
!bool_eq(directory_fetches_dir_info_later(options),
directory_fetches_dir_info_later(old_options))) {
directory_fetches_dir_info_later(old_options)) ||
!config_lines_eq(old_options->Bridges, options->Bridges)) {
/* Make sure update_router_have_minimum_dir_info() gets called. */
router_dir_info_changed();
/* We might need to download a new consensus status later or sooner than

View File

@ -3300,6 +3300,9 @@ num_bridges_usable,(int use_maybe_reachable))
}
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 */
if (guard->is_reachable == GUARD_REACHABLE_NO)
continue;