[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [metrics-db/master] Handle @type annotations when reading descriptors.
commit 65c525c2ac7f2f4a751615a3cab901b52ce99b6f
Author: Karsten Loesing <karsten.loesing@xxxxxxx>
Date: Fri May 11 16:17:09 2012 +0200
Handle @type annotations when reading descriptors.
---
.../torproject/ernie/db/RelayDescriptorParser.java | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/src/org/torproject/ernie/db/RelayDescriptorParser.java b/src/org/torproject/ernie/db/RelayDescriptorParser.java
index f3e90f2..be54656 100644
--- a/src/org/torproject/ernie/db/RelayDescriptorParser.java
+++ b/src/org/torproject/ernie/db/RelayDescriptorParser.java
@@ -69,7 +69,10 @@ public class RelayDescriptorParser {
* anyway. */
BufferedReader br = new BufferedReader(new StringReader(new String(
data, "US-ASCII")));
- String line = br.readLine();
+ String line;
+ do {
+ line = br.readLine();
+ } while (line != null && line.startsWith("@"));
if (line == null) {
this.logger.fine("We were given an empty descriptor for "
+ "parsing. Ignoring.");
@@ -227,6 +230,15 @@ public class RelayDescriptorParser {
String sigToken = "\nrouter-signature\n";
String digest = null;
int start = ascii.indexOf(startToken);
+ if (start > 0) {
+ /* Do not confuse "extra-info " in "@type extra-info 1.0" with
+ * "extra-info 0000...". TODO This is a hack that should be
+ * solved by using metrics-lib some day. */
+ start = ascii.indexOf("\n" + startToken);
+ if (start > 0) {
+ start++;
+ }
+ }
int sig = ascii.indexOf(sigToken) + sigToken.length();
if (start >= 0 || sig >= 0 || sig > start) {
byte[] forDigest = new byte[sig - start];
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits