mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Wait for busy authorities/fallbacks rather than ignoring excluded nodes
Applies the6c443e987d
fix to router_pick_directory_server_impl.6c443e987d
applied to directory servers chosen from the consensus, and was: "Tweak the 9969 fix a little If we have busy nodes and excluded nodes, then don't retry with the excluded ones enabled. Instead, wait for the busy ones to be nonbusy."
This commit is contained in:
parent
6ba8afe5f8
commit
978210d5a8
5
changes/feature17864
Normal file
5
changes/feature17864
Normal file
@ -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".
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user