]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
backport candidate:
authorRoger Dingledine <arma@torproject.org>
Sat, 1 Dec 2007 22:38:58 +0000 (22:38 +0000)
committerRoger Dingledine <arma@torproject.org>
Sat, 1 Dec 2007 22:38:58 +0000 (22:38 +0000)
Start purging old entries from the "rephist" database, and the
hidden service descriptor databases, even when DirPort is zero.

svn:r12628

ChangeLog
src/or/main.c

index 33ca1ecc7489b61af38897d4956557166d7d6840..0c4ff8223c593a68c861d1c3f5821de9044982df 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,8 @@ Changes in version 0.2.0.13-alpha - 2007-11-??
       two new guards on startup (bugfix on 0.2.0.9-alpha), and it was
       causing us to discard all our guards on startup if we hadn't been
       running for a few weeks (bugfix on 0.1.2.x). Fixes bug 448.
+    - Start purging old entries from the "rephist" database, and the
+      hidden service descriptor databases, even when DirPort is zero.
 
   o Minor bugfixes:
     - The fix in 0.2.0.12-alpha cleared the "hsdir" flag in v3 network
index a89bfc5992e01d0f918f323cb0641fbaabd7eb28..acb7cac3f4cfe357baac8fd2221a56af71facc3c 100644 (file)
@@ -833,6 +833,8 @@ run_scheduled_events(time_t now)
   static time_t time_to_downrate_stability = 0;
 #define SAVE_STABILITY_INTERVAL (30*60)
   static time_t time_to_save_stability = 0;
+#define CLEAN_CACHES_INTERVAL (30*60)
+  static time_t time_to_clean_caches = 0;
   or_options_t *options = get_options();
   int i;
   int have_dir_info;
@@ -974,12 +976,14 @@ run_scheduled_events(time_t now)
 #define V1_RUNNINGROUTERS_FETCH_PERIOD (12*60*60)
     time_to_fetch_running_routers = now + V1_RUNNINGROUTERS_FETCH_PERIOD;
 
-     /* Also, take this chance to remove old information from rephist
-     * and the rend cache. */
+  }
+
+  /* Remove old information from rephist and the rend cache. */
+  if (time_to_clean_caches < now) {
     rep_history_clean(now - options->RephistTrackTime);
     rend_cache_clean();
     rend_cache_clean_v2_descs_as_dir();
-    /* XXX020 we only clean this stuff if DirPort is set?! -RD */
+    time_to_clean_caches = now + CLEAN_CACHES_INTERVAL;
   }
 
   /* 2b. Once per minute, regenerate and upload the descriptor if the old