[or-cvs] [metrics-db/master] Handle NULL values and relays with zero relay flags.
karsten at torproject.org
karsten at torproject.org
Tue Sep 14 12:14:19 UTC 2010
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Tue, 14 Sep 2010 14:12:50 +0200
Subject: Handle NULL values and relays with zero relay flags.
Commit: 1dc5c7a732df9a28186263d47fad40d1bb0d8996
---
.../ernie/db/RelayDescriptorDatabaseImporter.java | 13 +++++++++----
.../torproject/ernie/db/RelayDescriptorParser.java | 2 +-
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/org/torproject/ernie/db/RelayDescriptorDatabaseImporter.java b/src/org/torproject/ernie/db/RelayDescriptorDatabaseImporter.java
index 4b97167..7938edc 100644
--- a/src/org/torproject/ernie/db/RelayDescriptorDatabaseImporter.java
+++ b/src/org/torproject/ernie/db/RelayDescriptorDatabaseImporter.java
@@ -216,7 +216,9 @@ public final class RelayDescriptorDatabaseImporter {
+ (flags.contains("Valid") ? "t" : "f") + "\t"
+ (flags.contains("V2Dir") ? "t" : "f") + "\t"
+ (flags.contains("V3Dir") ? "t" : "f") + "\t"
- + version + "\t" + bandwidth + "\t" + ports + "\t");
+ + (version != null ? version : "\\N") + "\t"
+ + (bandwidth >= 0 ? bandwidth : "\\N") + "\t"
+ + (ports != null ? ports : "\\N") + "\t");
this.statusentryOut.write(PGbytea.toPGString(rawDescriptor).
replaceAll("\\\\\\\\", "\\\\\\\\\\\\\\\\") + "\n");
}
@@ -274,9 +276,12 @@ public final class RelayDescriptorDatabaseImporter {
this.descriptorOut.write(descriptor.toLowerCase() + "\t"
+ nickname + "\t" + address + "\t" + orPort + "\t" + dirPort
+ "\t" + bandwidthAvg + "\t" + bandwidthBurst + "\t"
- + bandwidthObserved + "\t" + new String(platform.getBytes(),
- "US-ASCII") + "\t" + dateTimeFormat.format(published) + "\t"
- + uptime + "\t" + extraInfoDigest + "\t");
+ + bandwidthObserved + "\t"
+ + (platform != null && platform.length() > 0
+ ? new String(platform.getBytes(), "US-ASCII") : "\\N") + "\t"
+ + dateTimeFormat.format(published) + "\t"
+ + (uptime >= 0 ? uptime : "\\N") + "\t"
+ + (extraInfoDigest != null ? extraInfoDigest : "\\N") + "\t");
this.descriptorOut.write(PGbytea.toPGString(rawDescriptor).
replaceAll("\\\\\\\\", "\\\\\\\\\\\\\\\\") + "\n");
}
diff --git a/src/org/torproject/ernie/db/RelayDescriptorParser.java b/src/org/torproject/ernie/db/RelayDescriptorParser.java
index 9dfac56..8f9a29f 100644
--- a/src/org/torproject/ernie/db/RelayDescriptorParser.java
+++ b/src/org/torproject/ernie/db/RelayDescriptorParser.java
@@ -181,7 +181,7 @@ public class RelayDescriptorParser {
address = parts[6];
orPort = Long.parseLong(parts[7]);
dirPort = Long.parseLong(parts[8]);
- } else if (line.startsWith("s ")) {
+ } else if (line.startsWith("s ") || line.equals("s")) {
rawStatusEntry.append(line + "\n");
if (line.contains(" Running")) {
exit += line.contains(" Exit") ? 1 : 0;
--
1.7.1
More information about the tor-commits
mailing list