aboutsummaryrefslogtreecommitdiff
path: root/src/or/entrynodes.c
diff options
context:
space:
mode:
authorMatthew Finkel <Matthew.Finkel@gmail.com>2015-01-31 09:34:24 +0000
committerMatthew Finkel <Matthew.Finkel@gmail.com>2015-01-31 09:46:18 +0000
commit4cb59ceb8ef603f5661f87e4787d45255fbe210c (patch)
tree23829555e51b5ce3eef3bfd4aec83e9f8479d193 /src/or/entrynodes.c
parentaba90b2125725a2d870a847482e30d78a1a2582d (diff)
downloadtor-4cb59ceb8ef603f5661f87e4787d45255fbe210c.tar.gz
tor-4cb59ceb8ef603f5661f87e4787d45255fbe210c.zip
Only retry connecting to configured bridges
After connectivity problems, only try connecting to bridges which are currently configured; don't mark bridges which we previously used but are no longer configured. Fixes 14216. Reported by and fix provided by arma.
Diffstat (limited to 'src/or/entrynodes.c')
-rw-r--r--src/or/entrynodes.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c
index 5b0e342662..17cb825de3 100644
--- a/src/or/entrynodes.c
+++ b/src/or/entrynodes.c
@@ -2368,7 +2368,9 @@ entries_retry_helper(const or_options_t *options, int act)
SMARTLIST_FOREACH_BEGIN(entry_guards, entry_guard_t *, e) {
node = node_get_by_id(e->identity);
if (node && node_has_descriptor(node) &&
- node_is_bridge(node) == need_bridges) {
+ node_is_bridge(node) == need_bridges &&
+ (!need_bridges || (!e->bad_since &&
+ node_is_a_configured_bridge(node)))) {
any_known = 1;
if (node->is_running)
any_running = 1; /* some entry is both known and running */