From 85cf6dcba3693bbd1264e5fae05346ddf1909b85 Mon Sep 17 00:00:00 2001
From: Nick Mathewson <nickm@torproject.org>
Date: Mon, 6 Mar 2017 15:37:01 -0500
Subject: [PATCH] Stop declining to download microdescs with future published
 times.

This change is the only one necessary to allow future versions of
the microdescriptor consensus to replace every 'published' date with
e.g. 2038-01-01 00:00:00; this will save 50-75% in compressed
microdescriptor diff size, which is quite significant.

This commit is a minimal change for 0.2.9; future series will
reduce the use of the 'published' date even more.

Implements part of ticket 21642; implements part of proposal 275.
---
 changes/prop275-minimal | 9 +++++++++
 src/or/networkstatus.c  | 5 -----
 2 files changed, 9 insertions(+), 5 deletions(-)
 create mode 100644 changes/prop275-minimal

diff --git a/changes/prop275-minimal b/changes/prop275-minimal
new file mode 100644
index 0000000000..83d42f850b
--- /dev/null
+++ b/changes/prop275-minimal
@@ -0,0 +1,9 @@
+  o Minor features (future-proofing):
+
+    - Tor no longer refuses to download microdescriptors or descriptors if
+      they are listed as "published in the future".  This change will
+      eventually allow us to stop listing meaningful "published" dates
+      in microdescriptor consensuses, and thereby allow us to reduce the
+      resources required to download consensus diffs by over 50%.
+      Implements part of ticket 21642; implements part of proposal 275.
+
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index 2d39c90380..991cf80121 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -2360,11 +2360,6 @@ client_would_use_router(const routerstatus_t *rs, time_t now,
      * But, if we want to have a complete list, fetch it anyway. */
     return 0;
   }
-  if (rs->published_on + options->TestingEstimatedDescriptorPropagationTime
-      > now) {
-    /* Most caches probably don't have this descriptor yet. */
-    return 0;
-  }
   if (rs->published_on + OLD_ROUTER_DESC_MAX_AGE < now) {
     /* We'd drop it immediately for being too old. */
     return 0;
-- 
GitLab