aboutsummaryrefslogtreecommitdiff
path: root/src/or/networkstatus.c
diff options
context:
space:
mode:
authorteor <teor2345@gmail.com>2017-12-11 02:29:05 +1100
committerNick Mathewson <nickm@torproject.org>2017-12-12 19:17:25 -0500
commit19a4abf2a99c6a3de2c9a2fdf3e6d7b7c404f8f8 (patch)
tree48e37c5c8b39c91a4ee509b677d93a39822d1a2e /src/or/networkstatus.c
parent6b5c70670b26b9560febf5dc70f814d5e515c0f8 (diff)
downloadtor-19a4abf2a99c6a3de2c9a2fdf3e6d7b7c404f8f8.tar.gz
tor-19a4abf2a99c6a3de2c9a2fdf3e6d7b7c404f8f8.zip
Make sure bridges are definitely running before delaying directory fetches
Retry directory downloads when we get our first bridge descriptor during bootstrap or while reconnecting to the network. Keep retrying every time we get a bridge descriptor, until we have a reachable bridge. Stop delaying bridge descriptor fetches when we have cached bridge descriptors. Instead, only delay bridge descriptor fetches when we have at least one reachable bridge. Fixes bug 24367; bugfix on 0.2.0.3-alpha.
Diffstat (limited to 'src/or/networkstatus.c')
-rw-r--r--src/or/networkstatus.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index 2075fccc92..e0a3e4cdc6 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -1209,7 +1209,9 @@ should_delay_dir_fetches(const or_options_t *options, const char **msg_out)
}
if (options->UseBridges) {
- if (num_bridges_usable() == 0) {
+ /* If we know that none of our bridges can possibly work, avoid fetching
+ * directory documents. But if some of them might work, try again. */
+ if (num_bridges_usable(1) == 0) {
if (msg_out) {
*msg_out = "No running bridges";
}