Browse Source

Merge branch 'bug5380'

Nick Mathewson 13 years ago
parent
commit
2cdd631f5c
2 changed files with 10 additions and 1 deletions
  1. 5 0
      changes/bug5380
  2. 5 1
      src/or/circuitbuild.c

+ 5 - 0
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.

+ 5 - 1
src/or/circuitbuild.c

@@ -3737,7 +3737,9 @@ entry_guard_free(entry_guard_t *e)
 
 
 /** Remove any entry guard which was selected by an unknown version of Tor,
 /** Remove any entry guard which was selected by an unknown version of Tor,
  * or which was selected by a version of Tor that's known to select
  * or which was selected by a version of Tor that's known to select
- * entry guards badly. */
+ * entry guards badly, or which was selected more 2 months ago. */
+/* XXXX The "obsolete guards" and "chosen long ago guards" things should
+ * probably be different functions. */
 static int
 static int
 remove_obsolete_entry_guards(time_t now)
 remove_obsolete_entry_guards(time_t now)
 {
 {
@@ -3866,6 +3868,8 @@ entry_guards_compute_status(const or_options_t *options, time_t now)
 
 
   if (remove_dead_entry_guards(now))
   if (remove_dead_entry_guards(now))
     changed = 1;
     changed = 1;
+  if (remove_obsolete_entry_guards(now))
+    changed = 1;
 
 
   if (changed) {
   if (changed) {
     SMARTLIST_FOREACH_BEGIN(entry_guards, entry_guard_t *, entry) {
     SMARTLIST_FOREACH_BEGIN(entry_guards, entry_guard_t *, entry) {