[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r20633: {projects} If we are missing a descriptor, we cannot really make a stat (projects/archives/trunk/exonerator)



Author: kloesing
Date: 2009-09-21 14:36:51 -0400 (Mon, 21 Sep 2009)
New Revision: 20633

Modified:
   projects/archives/trunk/exonerator/ExoneraTor.java
Log:
If we are missing a descriptor, we cannot really make a statement about a
relay being an exit node or not.


Modified: projects/archives/trunk/exonerator/ExoneraTor.java
===================================================================
--- projects/archives/trunk/exonerator/ExoneraTor.java	2009-09-21 18:12:07 UTC (rev 20632)
+++ projects/archives/trunk/exonerator/ExoneraTor.java	2009-09-21 18:36:51 UTC (rev 20633)
@@ -331,6 +331,17 @@
           + " that clients were likely to know.\n");
       return;
     }
+    boolean resultIndecisive = target != null
+        && !missingDescriptors.isEmpty();
+    if (resultIndecisive) {
+      System.out.println("\n" + DELIMITER + "\n\nResult is INDECISIVE!\n\n"
+          + "At least one referenced descriptor could not be found. This "
+          + "is a rare case, but one that (apparently) happens. We cannot "
+          + "make any good statement about exit relays without these "
+          + "descriptors. The following descriptors are missing:");
+      for (String desc : missingDescriptors)
+        System.out.println("  " + desc);
+    }
     boolean inOtherRelevantConsensus = false, inTooOldConsensuses = false,
         inTooNewConsensuses = false;
     for (File f : matches)
@@ -341,9 +352,11 @@
       else if (tooNewConsensuses.contains(f))
         inTooNewConsensuses = true;
     if (inOtherRelevantConsensus) {
-      System.out.println("\n" + DELIMITER + "\n\nResult is POSITIVE with "
-          + "moderate certainty!\n\nWe found one or more relays on IP "
-          + "address " + relayIP
+      if (!resultIndecisive)
+        System.out.println("\n" + DELIMITER + "\n\nResult is POSITIVE "
+            + "with moderate certainty!");
+      System.out.println("\nWe found one or more relays on IP address "
+          + relayIP
           + (target != null ? " permitting exit to " + target : "")
           + ", but not in the consensus immediately preceding "
           + timestampStr + ". A possible reason for the relay being "
@@ -352,8 +365,11 @@
           + "connecting to the relay. However, clients might still have "
           + "used the relay.");
     } else {
-      System.out.println("Result is NEGATIVE with high certainty!\n\nWe "
-          + "did not find any relay on IP address " + relayIP
+      if (!resultIndecisive)
+        System.out.println("\n" + DELIMITER + "\n\nResult is NEGATIVE "
+            + "with high certainty!");
+      System.out.println("\nWe did not find any relay on IP address "
+          + relayIP
           + (target != null ? " permitting exit to " + target : "")
           + " in the consensuses 3:00 hours preceding " + timestampStr
           + ".");
@@ -381,17 +397,6 @@
         System.out.println("\nNote that although the found relay(s) did "
             + "not permit exiting to " + target + ", there have been one "
             + "or more relays running at the given time.");
-      if (!missingDescriptors.isEmpty()) {
-        System.out.println("\nNote that not all referenced descriptors "
-            + "could be found. We cannot make any good statement about "
-            + "exit relays without these descriptors. Make sure you "
-            + "downloaded and extracted the server descriptors of the "
-            + "given time. (In rare cases it also happens that we are "
-            + "missing single descriptors in the archives.) The following "
-            + "descriptors are missing:");
-        for (String desc : missingDescriptors)
-          System.out.println("  " + desc);
-      }
     }
     System.out.println();
   }