[tor-commits] [onionoo/master] Don't use server descriptors parse histories.

karsten at torproject.org karsten at torproject.org
Mon Apr 2 16:18:47 UTC 2012


commit bb770751631d86a5313679313be9084daa5be79b
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Mon Apr 2 17:29:15 2012 +0200

    Don't use server descriptors parse histories.
    
    If we parse a relay or bridge server descriptor that we never saw before
    and learn about the relay or bridge in a later consensus or status, we'll
    never write the descriptor content anywhere.  The result would be details
    files containing no descriptor parts until the relay or bridge publishes
    the next descriptor.  Yes, this took a long time to track down.
---
 src/org/torproject/onionoo/DetailDataWriter.java |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/org/torproject/onionoo/DetailDataWriter.java b/src/org/torproject/onionoo/DetailDataWriter.java
index a6198b1..1420297 100644
--- a/src/org/torproject/onionoo/DetailDataWriter.java
+++ b/src/org/torproject/onionoo/DetailDataWriter.java
@@ -57,7 +57,11 @@ public class DetailDataWriter {
         DescriptorSourceFactory.createDescriptorReader();
     reader.addDirectory(new File(
         "in/relay-descriptors/server-descriptors"));
-    reader.setExcludeFiles(new File("status/relay-serverdesc-history"));
+    /* Don't remember which server descriptors we already parsed.  If we
+     * parse a server descriptor now and first learn about the relay in a
+     * later consensus, we'll never write the descriptor content anywhere.
+     * The result would be details files containing no descriptor parts
+     * until the relay publishes the next descriptor. */
     Iterator<DescriptorFile> descriptorFiles = reader.readDescriptors();
     while (descriptorFiles.hasNext()) {
       DescriptorFile descriptorFile = descriptorFiles.next();
@@ -122,7 +126,11 @@ public class DetailDataWriter {
         DescriptorSourceFactory.createDescriptorReader();
     reader.addDirectory(new File(
         "in/bridge-descriptors/server-descriptors"));
-    reader.setExcludeFiles(new File("status/bridge-serverdesc-history"));
+    /* Don't remember which server descriptors we already parsed.  If we
+     * parse a server descriptor now and first learn about the relay in a
+     * later status, we'll never write the descriptor content anywhere.
+     * The result would be details files containing no descriptor parts
+     * until the bridge publishes the next descriptor. */
     Iterator<DescriptorFile> descriptorFiles = reader.readDescriptors();
     while (descriptorFiles.hasNext()) {
       DescriptorFile descriptorFile = descriptorFiles.next();





More information about the tor-commits mailing list