Browse Source

Entry Nodes: Mark outdated dirservers in reasonably live consensuses

Fixes bug 28569; bugfix on Tor 0.3.2.5-alpha.
teor 5 years ago
parent
commit
657618ba9b
2 changed files with 9 additions and 4 deletions
  1. 3 0
      changes/bug28569
  2. 6 4
      src/feature/nodelist/microdesc.c

+ 3 - 0
changes/bug28569

@@ -0,0 +1,3 @@
+  o Minor bugfixes (unit tests, directory clients):
+    - Mark outdated dirservers when Tor only has a reasonably live consensus.
+      Fixes bug 28569; bugfix on 0.3.2.5-alpha.

+ 6 - 4
src/feature/nodelist/microdesc.c

@@ -108,10 +108,12 @@ microdesc_note_outdated_dirserver(const char *relay_digest)
 {
   char relay_hexdigest[HEX_DIGEST_LEN+1];
 
-  /* Don't register outdated dirservers if we don't have a live consensus,
-   * since we might be trying to fetch microdescriptors that are not even
-   * currently active. */
-  if (!networkstatus_get_live_consensus(approx_time())) {
+  /* If we have a reasonably live consensus, then most of our dirservers should
+   * still be caching all the microdescriptors in it. Reasonably live
+   * consensuses are up to a day old. But microdescriptors expire 7 days after
+   * the last consensus that referenced them. */
+  if (!networkstatus_get_reasonably_live_consensus(approx_time(),
+                                                   FLAV_MICRODESC)) {
     return;
   }