diff options
author | teor <teor@torproject.org> | 2019-08-12 09:53:59 +1000 |
---|---|---|
committer | teor <teor@torproject.org> | 2019-08-12 09:53:59 +1000 |
commit | 31fb2bceb546fb84899e5c797e3f101b86dd8687 (patch) | |
tree | c8b6af4f7b0ce985e7b678f5e8521de342af5fea | |
parent | 789fdbed0586aeec5b312195a453c9ddaf8d58be (diff) | |
parent | c09e7a4e715d8266517896cfbc8fc80f19feba85 (diff) | |
download | tor-31fb2bceb546fb84899e5c797e3f101b86dd8687.tar.gz tor-31fb2bceb546fb84899e5c797e3f101b86dd8687.zip |
Merge remote-tracking branch 'tor-github/pr/1066' into maint-0.3.5
-rw-r--r-- | changes/bug29875 | 11 | ||||
-rw-r--r-- | src/app/config/config.c | 3 | ||||
-rw-r--r-- | src/feature/client/entrynodes.c | 3 |
3 files changed, 16 insertions, 1 deletions
diff --git a/changes/bug29875 b/changes/bug29875 new file mode 100644 index 0000000000..58a1c871cd --- /dev/null +++ b/changes/bug29875 @@ -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. diff --git a/src/app/config/config.c b/src/app/config/config.c index 68493e847d..0b1b758d96 100644 --- a/src/app/config/config.c +++ b/src/app/config/config.c @@ -2412,7 +2412,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 diff --git a/src/feature/client/entrynodes.c b/src/feature/client/entrynodes.c index e543289ce0..15ec830594 100644 --- a/src/feature/client/entrynodes.c +++ b/src/feature/client/entrynodes.c @@ -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; |