Browse Source

backport candidate:
Start purging old entries from the "rephist" database, and the
hidden service descriptor databases, even when DirPort is zero.


svn:r12628

Roger Dingledine 18 years ago
parent
commit
9b1b8199df
2 changed files with 9 additions and 3 deletions
  1. 2 0
      ChangeLog
  2. 7 3
      src/or/main.c

+ 2 - 0
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
       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
       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.
       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:
   o Minor bugfixes:
     - The fix in 0.2.0.12-alpha cleared the "hsdir" flag in v3 network
     - The fix in 0.2.0.12-alpha cleared the "hsdir" flag in v3 network

+ 7 - 3
src/or/main.c

@@ -833,6 +833,8 @@ run_scheduled_events(time_t now)
   static time_t time_to_downrate_stability = 0;
   static time_t time_to_downrate_stability = 0;
 #define SAVE_STABILITY_INTERVAL (30*60)
 #define SAVE_STABILITY_INTERVAL (30*60)
   static time_t time_to_save_stability = 0;
   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();
   or_options_t *options = get_options();
   int i;
   int i;
   int have_dir_info;
   int have_dir_info;
@@ -974,12 +976,14 @@ run_scheduled_events(time_t now)
 #define V1_RUNNINGROUTERS_FETCH_PERIOD (12*60*60)
 #define V1_RUNNINGROUTERS_FETCH_PERIOD (12*60*60)
     time_to_fetch_running_routers = now + V1_RUNNINGROUTERS_FETCH_PERIOD;
     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);
     rep_history_clean(now - options->RephistTrackTime);
     rend_cache_clean();
     rend_cache_clean();
     rend_cache_clean_v2_descs_as_dir();
     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
   /* 2b. Once per minute, regenerate and upload the descriptor if the old