aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2012-05-16 11:28:36 -0400
committerNick Mathewson <nickm@torproject.org>2012-05-16 11:31:28 -0400
commitf89de0a79fe02727d40a051eba0e96f7324e68ab (patch)
tree294662435d1972293592aa1a828a8ca104882a77
parenta6cb07bd9e332205d55010c8386746096f78fc91 (diff)
downloadtor-f89de0a79fe02727d40a051eba0e96f7324e68ab.tar.gz
tor-f89de0a79fe02727d40a051eba0e96f7324e68ab.zip
Remove over-two-months-old entry guards even while running.
Previously, we only did this check at startup, which could lead to us holding a guard indefinitely, and give weird results. Fixes bug 5380; bugfix on 0.2.1.14-rc. (Patch by Roger; changes file and commit message by Nick)
-rw-r--r--changes/bug53805
-rw-r--r--src/or/circuitbuild.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/changes/bug5380 b/changes/bug5380
new file mode 100644
index 0000000000..4bb17bc940
--- /dev/null
+++ b/changes/bug5380
@@ -0,0 +1,5 @@
+ o Minor bugfixes:
+ - Check our entry guards for having been picked too long ago when
+ we get a new consensus. (Previously, we only did this check at
+ startup, which could lead to us holding a guard indefinitely,
+ and give weird results.) Fixes bug 5380; bugfix on 0.2.1.14-rc.
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 19be77e5d5..403f65f284 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -3868,6 +3868,8 @@ entry_guards_compute_status(const or_options_t *options, time_t now)
if (remove_dead_entry_guards(now))
changed = 1;
+ if (remove_obsolete_entry_guards(now))
+ changed = 1;
if (changed) {
SMARTLIST_FOREACH_BEGIN(entry_guards, entry_guard_t *, entry) {