[tor-commits] [metrics-lib/master] Parse old server descriptors with "opt read-history " lines.

karsten at torproject.org karsten at torproject.org
Sat Feb 25 12:03:45 UTC 2012


commit 39021ee925004d57d3d952867e03b543eb207254
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Fri Feb 17 09:19:26 2012 +0100

    Parse old server descriptors with "opt read-history  " lines.
---
 .../descriptor/impl/BandwidthHistoryImpl.java      |    5 +++++
 .../descriptor/impl/ServerDescriptorImplTest.java  |   14 ++++++--------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/org/torproject/descriptor/impl/BandwidthHistoryImpl.java b/src/org/torproject/descriptor/impl/BandwidthHistoryImpl.java
index 3e094ad..c696624 100644
--- a/src/org/torproject/descriptor/impl/BandwidthHistoryImpl.java
+++ b/src/org/torproject/descriptor/impl/BandwidthHistoryImpl.java
@@ -15,6 +15,11 @@ public class BandwidthHistoryImpl implements BandwidthHistory {
     if (partsNoOpt.length >= 5) {
       try {
         this.line = line;
+        if (lineNoOpt.startsWith("read-history  ")) {
+          lineNoOpt = "read-history "
+              + lineNoOpt.substring("read-history  ".length());
+          partsNoOpt = lineNoOpt.split(" ");
+        }
         this.historyEndMillis = ParseHelper.parseTimestampAtIndex(line,
             partsNoOpt, 1, 2);
         if (partsNoOpt[3].startsWith("(") &&
diff --git a/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java b/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
index 85db9df..598c3ab 100644
--- a/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
+++ b/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
@@ -1007,14 +1007,12 @@ public class ServerDescriptorImplTest {
     assertTrue(bandwidthValues.isEmpty());
   }
 
-  /* TODO There are some old server descriptors with "read-history  "
-   * lines.  Find out if these were spec-compliant and if other lines may
-   * start with leading spaces, too. */
-  @Test(expected = DescriptorParseException.class)
-  public void testReadHistoryLeadingSpace()
-      throws DescriptorParseException {
-    String readHistoryLine = "read-history  2012-01-01 03:51:44 (900 s) "
-        + "4268032,139264,7797760,1415168";
+  @Test()
+  public void testReadHistoryTwoSpaces() throws DescriptorParseException {
+    /* There are some server descriptors from older Tor versions that
+     * contain "opt read-history  " lines. */
+    String readHistoryLine = "opt read-history  2012-01-01 03:51:44 "
+        + "(900 s) 4268032,139264,7797760,1415168";
     DescriptorBuilder.createWithReadHistoryLine(readHistoryLine);
   }
 





More information about the tor-commits mailing list