diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-12-16 08:41:20 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-12-16 08:41:20 -0500 |
commit | 10e442ba93be0c41daec10319943aa19c616b281 (patch) | |
tree | 91bd3515b0238a8349b350d66a26dd88f7a04f07 | |
parent | a03469aa851bf6e658d539e95b5f1e786f9622bc (diff) | |
parent | 978210d5a868e8b0f5bd5f83804117ae46954f5f (diff) | |
download | tor-10e442ba93be0c41daec10319943aa19c616b281.tar.gz tor-10e442ba93be0c41daec10319943aa19c616b281.zip |
Merge remote-tracking branch 'teor/feature17864'
-rw-r--r-- | changes/feature17864 | 5 | ||||
-rw-r--r-- | src/or/routerlist.c | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/changes/feature17864 b/changes/feature17864 new file mode 100644 index 0000000000..1cf156206b --- /dev/null +++ b/changes/feature17864 @@ -0,0 +1,5 @@ + o Minor feature (directory downloads): + - Wait for busy authorities and fallbacks to become non-busy when + bootstrapping. (A similar change was made in 6c443e987d for + directory servers chosen from the consensus.) + Closes ticket 17864; patch by "teor". diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 051bac5de5..c45854c52f 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -1739,22 +1739,24 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist, result = &selection->fake_status; } - if (n_busy_out) - *n_busy_out = n_busy; - smartlist_free(direct); smartlist_free(tunnel); smartlist_free(overloaded_direct); smartlist_free(overloaded_tunnel); - if (result == NULL && try_excluding && !options->StrictNodes && n_excluded) { + if (result == NULL && try_excluding && !options->StrictNodes && n_excluded + && !n_busy) { /* If we got no result, and we are excluding nodes, and StrictNodes is * not set, try again without excluding nodes. */ try_excluding = 0; n_excluded = 0; + n_busy = 0; goto retry_without_exclude; } + if (n_busy_out) + *n_busy_out = n_busy; + return result; } |