tor-commits
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
December 2015
- 18 participants
- 1282 discussions
[metrics-lib/master] Use Java 7's switch-on-String wherever possible.
by karsten@torproject.org 25 Dec '15
by karsten@torproject.org 25 Dec '15
25 Dec '15
commit 2b4d7732f65a8d030f7b747ed9931e5541956332
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Dec 22 12:55:44 2015 +0100
Use Java 7's switch-on-String wherever possible.
Rather than writing chained if-else statements with String comparison
for equals(), we can now switch on a String instance.
Suggested by iwakeh, implements #17824.
---
.../descriptor/DescriptorSourceFactory.java | 13 +-
.../descriptor/impl/BridgeNetworkStatusImpl.java | 51 +++--
.../impl/DirectoryKeyCertificateImpl.java | 95 ++++----
.../descriptor/impl/ExtraInfoDescriptorImpl.java | 228 ++++++++++++--------
.../descriptor/impl/MicrodescriptorImpl.java | 74 ++++---
.../descriptor/impl/NetworkStatusEntryImpl.java | 38 ++--
.../descriptor/impl/RelayDirectoryImpl.java | 75 ++++---
.../impl/RelayNetworkStatusConsensusImpl.java | 73 ++++---
.../descriptor/impl/RelayNetworkStatusImpl.java | 80 ++++---
.../impl/RelayNetworkStatusVoteImpl.java | 127 +++++++----
.../descriptor/impl/ServerDescriptorImpl.java | 199 ++++++++++-------
.../descriptor/impl/TorperfResultImpl.java | 87 +++++---
12 files changed, 700 insertions(+), 440 deletions(-)
diff --git a/src/org/torproject/descriptor/DescriptorSourceFactory.java b/src/org/torproject/descriptor/DescriptorSourceFactory.java
index 49fcdc6..8bab13e 100644
--- a/src/org/torproject/descriptor/DescriptorSourceFactory.java
+++ b/src/org/torproject/descriptor/DescriptorSourceFactory.java
@@ -53,14 +53,19 @@ public final class DescriptorSourceFactory {
Object object;
String clazzName = null;
try {
- if (PARSER_PROPERTY.equals(type)) {
+ switch (type) {
+ case PARSER_PROPERTY:
clazzName = System.getProperty(type, PARSER_DEFAULT);
- } else if (LOADER_PROPERTY.equals(type)) {
+ break;
+ case LOADER_PROPERTY:
clazzName = System.getProperty(type, LOADER_DEFAULT);
- } else if (READER_PROPERTY.equals(type)) {
+ break;
+ case READER_PROPERTY:
clazzName = System.getProperty(type, READER_DEFAULT);
- } else if (COLLECTOR_PROPERTY.equals(type)) {
+ break;
+ case COLLECTOR_PROPERTY:
clazzName = System.getProperty(type, COLLECTOR_DEFAULT);
+ break;
}
object = ClassLoader.getSystemClassLoader().loadClass(clazzName).
newInstance();
diff --git a/src/org/torproject/descriptor/impl/BridgeNetworkStatusImpl.java b/src/org/torproject/descriptor/impl/BridgeNetworkStatusImpl.java
index d5e6d8f..fcc9b64 100644
--- a/src/org/torproject/descriptor/impl/BridgeNetworkStatusImpl.java
+++ b/src/org/torproject/descriptor/impl/BridgeNetworkStatusImpl.java
@@ -73,18 +73,23 @@ public class BridgeNetworkStatusImpl extends NetworkStatusImpl
String line = s.next();
String[] parts = line.split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("published")) {
+ switch (keyword) {
+ case "published":
this.parsePublishedLine(line, parts);
- } else if (keyword.equals("flag-thresholds")) {
+ break;
+ case "flag-thresholds":
this.parseFlagThresholdsLine(line, parts);
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '" + line
- + "' in bridge network status.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ default:
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '" + line
+ + "' in bridge network status.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
@@ -105,27 +110,37 @@ public class BridgeNetworkStatusImpl extends NetworkStatusImpl
ParseHelper.parseKeyValueStringPairs(line, parts, 1, "=");
try {
for (Map.Entry<String, String> e : flagThresholds.entrySet()) {
- if (e.getKey().equals("stable-uptime")) {
+ switch (e.getKey()) {
+ case "stable-uptime":
this.stableUptime = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("stable-mtbf")) {
+ break;
+ case "stable-mtbf":
this.stableMtbf = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("fast-speed")) {
+ break;
+ case "fast-speed":
this.fastBandwidth = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("guard-wfu")) {
+ break;
+ case "guard-wfu":
this.guardWfu = Double.parseDouble(e.getValue().
replaceAll("%", ""));
- } else if (e.getKey().equals("guard-tk")) {
+ break;
+ case "guard-tk":
this.guardTk = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("guard-bw-inc-exits")) {
+ break;
+ case "guard-bw-inc-exits":
this.guardBandwidthIncludingExits =
Long.parseLong(e.getValue());
- } else if (e.getKey().equals("guard-bw-exc-exits")) {
+ break;
+ case "guard-bw-exc-exits":
this.guardBandwidthExcludingExits =
Long.parseLong(e.getValue());
- } else if (e.getKey().equals("enough-mtbf")) {
+ break;
+ case "enough-mtbf":
this.enoughMtbfInfo = Integer.parseInt(e.getValue());
- } else if (e.getKey().equals("ignoring-advertised-bws")) {
+ break;
+ case "ignoring-advertised-bws":
this.ignoringAdvertisedBws = Integer.parseInt(e.getValue());
+ break;
}
}
} catch (NumberFormatException ex) {
diff --git a/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java b/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
index 152ffeb..fcbf3f7 100644
--- a/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
+++ b/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
@@ -60,65 +60,82 @@ public class DirectoryKeyCertificateImpl extends DescriptorImpl
private void parseDescriptorBytes() throws DescriptorParseException {
Scanner s = new Scanner(new String(this.rawDescriptorBytes)).
useDelimiter("\n");
- String nextCrypto = null;
+ String nextCrypto = "";
StringBuilder crypto = null;
while (s.hasNext()) {
String line = s.next();
String[] parts = line.split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("dir-key-certificate-version")) {
+ switch (keyword) {
+ case "dir-key-certificate-version":
this.parseDirKeyCertificateVersionLine(line, parts);
- } else if (keyword.equals("dir-address")) {
+ break;
+ case "dir-address":
this.parseDirAddressLine(line, parts);
- } else if (keyword.equals("fingerprint")) {
+ break;
+ case "fingerprint":
this.parseFingerprintLine(line, parts);
- } else if (keyword.equals("dir-identity-key")) {
+ break;
+ case "dir-identity-key":
this.parseDirIdentityKeyLine(line, parts);
nextCrypto = "dir-identity-key";
- } else if (keyword.equals("dir-key-published")) {
+ break;
+ case "dir-key-published":
this.parseDirKeyPublishedLine(line, parts);
- } else if (keyword.equals("dir-key-expires")) {
+ break;
+ case "dir-key-expires":
this.parseDirKeyExpiresLine(line, parts);
- } else if (keyword.equals("dir-signing-key")) {
+ break;
+ case "dir-signing-key":
this.parseDirSigningKeyLine(line, parts);
nextCrypto = "dir-signing-key";
- } else if (keyword.equals("dir-key-crosscert")) {
+ break;
+ case "dir-key-crosscert":
this.parseDirKeyCrosscertLine(line, parts);
nextCrypto = "dir-key-crosscert";
- } else if (keyword.equals("dir-key-certification")) {
+ break;
+ case "dir-key-certification":
this.parseDirKeyCertificationLine(line, parts);
nextCrypto = "dir-key-certification";
- } else if (line.startsWith("-----BEGIN")) {
- crypto = new StringBuilder();
- crypto.append(line + "\n");
- } else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
- String cryptoString = crypto.toString();
- crypto = null;
- if (nextCrypto.equals("dir-identity-key")) {
- this.dirIdentityKey = cryptoString;
- } else if (nextCrypto.equals("dir-signing-key")) {
- this.dirSigningKey = cryptoString;
- } else if (nextCrypto.equals("dir-key-crosscert")) {
- this.dirKeyCrosscert = cryptoString;
- } else if (nextCrypto.equals("dir-key-certification")) {
- this.dirKeyCertification = cryptoString;
- } else {
- throw new DescriptorParseException("Unrecognized crypto "
- + "block in directory key certificate.");
- }
- nextCrypto = null;
- } else if (crypto != null) {
- crypto.append(line + "\n");
- } else {
- if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '"
- + line + "' in directory key certificate.");
+ break;
+ default:
+ if (line.startsWith("-----BEGIN")) {
+ crypto = new StringBuilder();
+ crypto.append(line + "\n");
+ } else if (line.startsWith("-----END")) {
+ crypto.append(line + "\n");
+ String cryptoString = crypto.toString();
+ crypto = null;
+ switch (nextCrypto) {
+ case "dir-identity-key":
+ this.dirIdentityKey = cryptoString;
+ break;
+ case "dir-signing-key":
+ this.dirSigningKey = cryptoString;
+ break;
+ case "dir-key-crosscert":
+ this.dirKeyCrosscert = cryptoString;
+ break;
+ case "dir-key-certification":
+ this.dirKeyCertification = cryptoString;
+ break;
+ default:
+ throw new DescriptorParseException("Unrecognized crypto "
+ + "block in directory key certificate.");
+ }
+ nextCrypto = "";
+ } else if (crypto != null) {
+ crypto.append(line + "\n");
} else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '"
+ + line + "' in directory key certificate.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
diff --git a/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java b/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
index ff8df51..36ff269 100644
--- a/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
@@ -79,7 +79,7 @@ public abstract class ExtraInfoDescriptorImpl extends DescriptorImpl
private void parseDescriptorBytes() throws DescriptorParseException {
Scanner s = new Scanner(new String(this.rawDescriptorBytes)).
useDelimiter("\n");
- String nextCrypto = null;
+ String nextCrypto = "";
List<String> cryptoLines = null;
while (s.hasNext()) {
String line = s.next();
@@ -87,145 +87,203 @@ public abstract class ExtraInfoDescriptorImpl extends DescriptorImpl
line.substring("opt ".length()) : line;
String[] partsNoOpt = lineNoOpt.split("[ \t]+");
String keyword = partsNoOpt[0];
- if (keyword.equals("extra-info")) {
+ switch (keyword) {
+ case "extra-info":
this.parseExtraInfoLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("published")) {
+ break;
+ case "published":
this.parsePublishedLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("read-history")) {
+ break;
+ case "read-history":
this.parseReadHistoryLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("write-history")) {
+ break;
+ case "write-history":
this.parseWriteHistoryLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("geoip-db-digest")) {
+ break;
+ case "geoip-db-digest":
this.parseGeoipDbDigestLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("geoip6-db-digest")) {
+ break;
+ case "geoip6-db-digest":
this.parseGeoip6DbDigestLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("geoip-start-time")) {
+ break;
+ case "geoip-start-time":
this.parseGeoipStartTimeLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("geoip-client-origins")) {
+ break;
+ case "geoip-client-origins":
this.parseGeoipClientOriginsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-stats-end")) {
+ break;
+ case "dirreq-stats-end":
this.parseDirreqStatsEndLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v2-ips")) {
+ break;
+ case "dirreq-v2-ips":
this.parseDirreqV2IpsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v3-ips")) {
+ break;
+ case "dirreq-v3-ips":
this.parseDirreqV3IpsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v2-reqs")) {
+ break;
+ case "dirreq-v2-reqs":
this.parseDirreqV2ReqsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v3-reqs")) {
+ break;
+ case "dirreq-v3-reqs":
this.parseDirreqV3ReqsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v2-share")) {
+ break;
+ case "dirreq-v2-share":
this.parseDirreqV2ShareLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v3-share")) {
+ break;
+ case "dirreq-v3-share":
this.parseDirreqV3ShareLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v2-resp")) {
+ break;
+ case "dirreq-v2-resp":
this.parseDirreqV2RespLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v3-resp")) {
+ break;
+ case "dirreq-v3-resp":
this.parseDirreqV3RespLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v2-direct-dl")) {
+ break;
+ case "dirreq-v2-direct-dl":
this.parseDirreqV2DirectDlLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v3-direct-dl")) {
+ break;
+ case "dirreq-v3-direct-dl":
this.parseDirreqV3DirectDlLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v2-tunneled-dl")) {
+ break;
+ case "dirreq-v2-tunneled-dl":
this.parseDirreqV2TunneledDlLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-v3-tunneled-dl")) {
+ break;
+ case "dirreq-v3-tunneled-dl":
this.parseDirreqV3TunneledDlLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-read-history")) {
+ break;
+ case "dirreq-read-history":
this.parseDirreqReadHistoryLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dirreq-write-history")) {
+ break;
+ case "dirreq-write-history":
this.parseDirreqWriteHistoryLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("entry-stats-end")) {
+ break;
+ case "entry-stats-end":
this.parseEntryStatsEndLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("entry-ips")) {
+ break;
+ case "entry-ips":
this.parseEntryIpsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("cell-stats-end")) {
+ break;
+ case "cell-stats-end":
this.parseCellStatsEndLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("cell-processed-cells")) {
+ break;
+ case "cell-processed-cells":
this.parseCellProcessedCellsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("cell-queued-cells")) {
+ break;
+ case "cell-queued-cells":
this.parseCellQueuedCellsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("cell-time-in-queue")) {
+ break;
+ case "cell-time-in-queue":
this.parseCellTimeInQueueLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("cell-circuits-per-decile")) {
+ break;
+ case "cell-circuits-per-decile":
this.parseCellCircuitsPerDecileLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("conn-bi-direct")) {
+ break;
+ case "conn-bi-direct":
this.parseConnBiDirectLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("exit-stats-end")) {
+ break;
+ case "exit-stats-end":
this.parseExitStatsEndLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("exit-kibibytes-written")) {
+ break;
+ case "exit-kibibytes-written":
this.parseExitKibibytesWrittenLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("exit-kibibytes-read")) {
+ break;
+ case "exit-kibibytes-read":
this.parseExitKibibytesReadLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("exit-streams-opened")) {
+ break;
+ case "exit-streams-opened":
this.parseExitStreamsOpenedLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("bridge-stats-end")) {
+ break;
+ case "bridge-stats-end":
this.parseBridgeStatsEndLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("bridge-ips")) {
+ break;
+ case "bridge-ips":
this.parseBridgeStatsIpsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("bridge-ip-versions")) {
+ break;
+ case "bridge-ip-versions":
this.parseBridgeIpVersionsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("bridge-ip-transports")) {
+ break;
+ case "bridge-ip-transports":
this.parseBridgeIpTransportsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("transport")) {
+ break;
+ case "transport":
this.parseTransportLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("hidserv-stats-end")) {
+ break;
+ case "hidserv-stats-end":
this.parseHidservStatsEndLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("hidserv-rend-relayed-cells")) {
+ break;
+ case "hidserv-rend-relayed-cells":
this.parseHidservRendRelayedCellsLine(line, lineNoOpt,
partsNoOpt);
- } else if (keyword.equals("hidserv-dir-onions-seen")) {
+ break;
+ case "hidserv-dir-onions-seen":
this.parseHidservDirOnionsSeenLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("identity-ed25519")) {
+ break;
+ case "identity-ed25519":
this.parseIdentityEd25519Line(line, lineNoOpt, partsNoOpt);
nextCrypto = "identity-ed25519";
- } else if (keyword.equals("master-key-ed25519")) {
+ break;
+ case "master-key-ed25519":
this.parseMasterKeyEd25519Line(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("router-sig-ed25519")) {
+ break;
+ case "router-sig-ed25519":
this.parseRouterSigEd25519Line(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("router-signature")) {
+ break;
+ case "router-signature":
this.parseRouterSignatureLine(line, lineNoOpt, partsNoOpt);
nextCrypto = "router-signature";
- } else if (keyword.equals("router-digest")) {
+ break;
+ case "router-digest":
this.parseRouterDigestLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("router-digest-sha256")) {
+ break;
+ case "router-digest-sha256":
this.parseRouterDigestSha256Line(line, lineNoOpt, partsNoOpt);
- } else if (line.startsWith("-----BEGIN")) {
- cryptoLines = new ArrayList<>();
- cryptoLines.add(line);
- } else if (line.startsWith("-----END")) {
- cryptoLines.add(line);
- StringBuilder sb = new StringBuilder();
- for (String cryptoLine : cryptoLines) {
- sb.append("\n" + cryptoLine);
- }
- String cryptoString = sb.toString().substring(1);
- if ("router-signature".equals(nextCrypto)) {
- this.routerSignature = cryptoString;
- } else if ("identity-ed25519".equals(nextCrypto)) {
- this.identityEd25519 = cryptoString;
- this.parseIdentityEd25519CryptoBlock(cryptoString);
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized crypto "
- + "block '" + cryptoString + "' in extra-info descriptor.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ default:
+ if (line.startsWith("-----BEGIN")) {
+ cryptoLines = new ArrayList<>();
+ cryptoLines.add(line);
+ } else if (line.startsWith("-----END")) {
+ cryptoLines.add(line);
+ StringBuilder sb = new StringBuilder();
+ for (String cryptoLine : cryptoLines) {
+ sb.append("\n" + cryptoLine);
}
- this.unrecognizedLines.addAll(cryptoLines);
- }
- cryptoLines = null;
- nextCrypto = null;
- } else if (cryptoLines != null) {
- cryptoLines.add(line);
- } else {
- ParseHelper.parseKeyword(line, partsNoOpt[0]);
- if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '"
- + line + "' in extra-info descriptor.");
+ String cryptoString = sb.toString().substring(1);
+ switch (nextCrypto) {
+ case "router-signature":
+ this.routerSignature = cryptoString;
+ break;
+ case "identity-ed25519":
+ this.identityEd25519 = cryptoString;
+ this.parseIdentityEd25519CryptoBlock(cryptoString);
+ break;
+ default:
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized crypto "
+ + "block '" + cryptoString + "' in extra-info "
+ + "descriptor.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.addAll(cryptoLines);
+ }
+ }
+ cryptoLines = null;
+ nextCrypto = "";
+ } else if (cryptoLines != null) {
+ cryptoLines.add(line);
} else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ ParseHelper.parseKeyword(line, partsNoOpt[0]);
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '"
+ + line + "' in extra-info descriptor.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
diff --git a/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java b/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
index 3e7f466..a70493d 100644
--- a/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
@@ -57,7 +57,7 @@ public class MicrodescriptorImpl extends DescriptorImpl
private void parseDescriptorBytes() throws DescriptorParseException {
Scanner s = new Scanner(new String(this.rawDescriptorBytes)).
useDelimiter("\n");
- String nextCrypto = null;
+ String nextCrypto = "";
StringBuilder crypto = null;
while (s.hasNext()) {
String line = s.next();
@@ -66,47 +66,57 @@ public class MicrodescriptorImpl extends DescriptorImpl
}
String[] parts = line.split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("onion-key")) {
+ switch (keyword) {
+ case "onion-key":
this.parseOnionKeyLine(line, parts);
nextCrypto = "onion-key";
- } else if (keyword.equals("ntor-onion-key")) {
+ break;
+ case "ntor-onion-key":
this.parseNtorOnionKeyLine(line, parts);
- } else if (keyword.equals("a")) {
+ break;
+ case "a":
this.parseALine(line, parts);
- } else if (keyword.equals("family")) {
+ break;
+ case "family":
this.parseFamilyLine(line, parts);
- } else if (keyword.equals("p")) {
+ break;
+ case "p":
this.parsePLine(line, parts);
- } else if (keyword.equals("p6")) {
+ break;
+ case "p6":
this.parseP6Line(line, parts);
- } else if (keyword.equals("id")) {
+ break;
+ case "id":
this.parseIdLine(line, parts);
- } else if (line.startsWith("-----BEGIN")) {
- crypto = new StringBuilder();
- crypto.append(line + "\n");
- } else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
- String cryptoString = crypto.toString();
- crypto = null;
- if (nextCrypto.equals("onion-key")) {
- this.onionKey = cryptoString;
- } else {
- throw new DescriptorParseException("Unrecognized crypto "
- + "block in microdescriptor.");
- }
- nextCrypto = null;
- } else if (crypto != null) {
- crypto.append(line + "\n");
- } else {
- ParseHelper.parseKeyword(line, parts[0]);
- if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '"
- + line + "' in microdescriptor.");
+ break;
+ default:
+ if (line.startsWith("-----BEGIN")) {
+ crypto = new StringBuilder();
+ crypto.append(line + "\n");
+ } else if (line.startsWith("-----END")) {
+ crypto.append(line + "\n");
+ String cryptoString = crypto.toString();
+ crypto = null;
+ if (nextCrypto.equals("onion-key")) {
+ this.onionKey = cryptoString;
+ } else {
+ throw new DescriptorParseException("Unrecognized crypto "
+ + "block in microdescriptor.");
+ }
+ nextCrypto = "";
+ } else if (crypto != null) {
+ crypto.append(line + "\n");
} else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ ParseHelper.parseKeyword(line, parts[0]);
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '"
+ + line + "' in microdescriptor.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
diff --git a/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java b/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java
index 4f2b69b..c5f0704 100644
--- a/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java
+++ b/src/org/torproject/descriptor/impl/NetworkStatusEntryImpl.java
@@ -79,28 +79,38 @@ public class NetworkStatusEntryImpl implements NetworkStatusEntry {
String[] parts = !line.startsWith("opt ") ? line.split("[ \t]+") :
line.substring("opt ".length()).split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("a")) {
+ switch (keyword) {
+ case "a":
this.parseALine(line, parts);
- } else if (keyword.equals("s")) {
+ break;
+ case "s":
this.parseSLine(line, parts);
- } else if (keyword.equals("v")) {
+ break;
+ case "v":
this.parseVLine(line, parts);
- } else if (keyword.equals("w")) {
+ break;
+ case "w":
this.parseWLine(line, parts);
- } else if (keyword.equals("p")) {
+ break;
+ case "p":
this.parsePLine(line, parts);
- } else if (keyword.equals("m")) {
+ break;
+ case "m":
this.parseMLine(line, parts);
- } else if (keyword.equals("id")) {
+ break;
+ case "id":
this.parseIdLine(line, parts);
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '" + line
- + "' in status entry.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ default:
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '" + line
+ + "' in status entry.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
diff --git a/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java b/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
index 0b82328..4d583aa 100644
--- a/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
@@ -189,7 +189,7 @@ public class RelayDirectoryImpl extends DescriptorImpl
private void parseHeader(byte[] headerBytes)
throws DescriptorParseException {
Scanner s = new Scanner(new String(headerBytes)).useDelimiter("\n");
- String publishedLine = null, nextCrypto = null,
+ String publishedLine = null, nextCrypto = "",
runningRoutersLine = null, routerStatusLine = null;
StringBuilder crypto = null;
while (s.hasNext()) {
@@ -201,9 +201,11 @@ public class RelayDirectoryImpl extends DescriptorImpl
line.substring("opt ".length()) : line;
String[] partsNoOpt = lineNoOpt.split("[ \t]+");
String keyword = partsNoOpt[0];
- if (keyword.equals("signed-directory")) {
+ switch (keyword) {
+ case "signed-directory":
this.parseSignedDirectoryLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("published")) {
+ break;
+ case "published":
if (publishedLine != null) {
throw new DescriptorParseException("Keyword 'published' is "
+ "contained more than once, but must be contained exactly "
@@ -211,41 +213,48 @@ public class RelayDirectoryImpl extends DescriptorImpl
} else {
publishedLine = line;
}
- } else if (keyword.equals("dir-signing-key")) {
+ break;
+ case "dir-signing-key":
this.parseDirSigningKeyLine(line, lineNoOpt, partsNoOpt);
nextCrypto = "dir-signing-key";
- } else if (keyword.equals("recommended-software")) {
+ break;
+ case "recommended-software":
this.parseRecommendedSoftwareLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("running-routers")) {
+ break;
+ case "running-routers":
runningRoutersLine = line;
- } else if (keyword.equals("router-status")) {
+ break;
+ case "router-status":
routerStatusLine = line;
- } else if (line.startsWith("-----BEGIN")) {
- crypto = new StringBuilder();
- crypto.append(line + "\n");
- } else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
- String cryptoString = crypto.toString();
- crypto = null;
- if (nextCrypto.equals("dir-signing-key") &&
- this.dirSigningKey == null) {
- this.dirSigningKey = cryptoString;
- } else {
- throw new DescriptorParseException("Unrecognized crypto "
- + "block in v1 directory.");
- }
- nextCrypto = null;
- } else if (crypto != null) {
- crypto.append(line + "\n");
- } else {
- if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '"
- + line + "' in v1 directory.");
+ break;
+ default:
+ if (line.startsWith("-----BEGIN")) {
+ crypto = new StringBuilder();
+ crypto.append(line + "\n");
+ } else if (line.startsWith("-----END")) {
+ crypto.append(line + "\n");
+ String cryptoString = crypto.toString();
+ crypto = null;
+ if (nextCrypto.equals("dir-signing-key") &&
+ this.dirSigningKey == null) {
+ this.dirSigningKey = cryptoString;
+ } else {
+ throw new DescriptorParseException("Unrecognized crypto "
+ + "block in v1 directory.");
+ }
+ nextCrypto = "";
+ } else if (crypto != null) {
+ crypto.append(line + "\n");
} else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '"
+ + line + "' in v1 directory.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
@@ -296,7 +305,7 @@ public class RelayDirectoryImpl extends DescriptorImpl
throws DescriptorParseException {
Scanner s = new Scanner(new String(directorySignatureBytes)).
useDelimiter("\n");
- String nextCrypto = null;
+ String nextCrypto = "";
StringBuilder crypto = null;
while (s.hasNext()) {
String line = s.next();
@@ -320,7 +329,7 @@ public class RelayDirectoryImpl extends DescriptorImpl
throw new DescriptorParseException("Unrecognized crypto "
+ "block in v2 network status.");
}
- nextCrypto = null;
+ nextCrypto = "";
} else if (crypto != null) {
crypto.append(line + "\n");
} else if (this.failUnrecognizedDescriptorLines) {
diff --git a/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java b/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java
index d92718c..13b9142 100644
--- a/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImpl.java
@@ -95,36 +95,50 @@ public class RelayNetworkStatusConsensusImpl extends NetworkStatusImpl
String line = s.next();
String[] parts = line.split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("network-status-version")) {
+ switch (keyword) {
+ case "network-status-version":
this.parseNetworkStatusVersionLine(line, parts);
- } else if (keyword.equals("vote-status")) {
+ break;
+ case "vote-status":
this.parseVoteStatusLine(line, parts);
- } else if (keyword.equals("consensus-method")) {
+ break;
+ case "consensus-method":
this.parseConsensusMethodLine(line, parts);
- } else if (keyword.equals("valid-after")) {
+ break;
+ case "valid-after":
this.parseValidAfterLine(line, parts);
- } else if (keyword.equals("fresh-until")) {
+ break;
+ case "fresh-until":
this.parseFreshUntilLine(line, parts);
- } else if (keyword.equals("valid-until")) {
+ break;
+ case "valid-until":
this.parseValidUntilLine(line, parts);
- } else if (keyword.equals("voting-delay")) {
+ break;
+ case "voting-delay":
this.parseVotingDelayLine(line, parts);
- } else if (keyword.equals("client-versions")) {
+ break;
+ case "client-versions":
this.parseClientVersionsLine(line, parts);
- } else if (keyword.equals("server-versions")) {
+ break;
+ case "server-versions":
this.parseServerVersionsLine(line, parts);
- } else if (keyword.equals("known-flags")) {
+ break;
+ case "known-flags":
this.parseKnownFlagsLine(line, parts);
- } else if (keyword.equals("params")) {
+ break;
+ case "params":
this.parseParamsLine(line, parts);
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '" + line
- + "' in consensus.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ default:
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '" + line
+ + "' in consensus.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
@@ -153,17 +167,22 @@ public class RelayNetworkStatusConsensusImpl extends NetworkStatusImpl
String line = s.next();
String[] parts = line.split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("directory-footer")) {
- } else if (keyword.equals("bandwidth-weights")) {
+ switch (keyword) {
+ case "directory-footer":
+ break;
+ case "bandwidth-weights":
this.parseBandwidthWeightsLine(line, parts);
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '" + line
- + "' in consensus.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ default:
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '" + line
+ + "' in consensus.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
diff --git a/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java b/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
index c2735e7..a10ed7a 100644
--- a/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
@@ -88,7 +88,7 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
protected void parseHeader(byte[] headerBytes)
throws DescriptorParseException {
Scanner s = new Scanner(new String(headerBytes)).useDelimiter("\n");
- String nextCrypto = null;
+ String nextCrypto = "";
StringBuilder crypto = null;
while (s.hasNext()) {
String line = s.next();
@@ -97,49 +97,61 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
}
String[] parts = line.split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("network-status-version")) {
+ switch (keyword) {
+ case "network-status-version":
this.parseNetworkStatusVersionLine(line, parts);
- } else if (keyword.equals("dir-source")) {
+ break;
+ case "dir-source":
this.parseDirSourceLine(line, parts);
- } else if (keyword.equals("fingerprint")) {
+ break;
+ case "fingerprint":
this.parseFingerprintLine(line, parts);
- } else if (keyword.equals("contact")) {
+ break;
+ case "contact":
this.parseContactLine(line, parts);
- } else if (keyword.equals("dir-signing-key")) {
+ break;
+ case "dir-signing-key":
this.parseDirSigningKeyLine(line, parts);
nextCrypto = "dir-signing-key";
- } else if (keyword.equals("client-versions")) {
+ break;
+ case "client-versions":
this.parseClientVersionsLine(line, parts);
- } else if (keyword.equals("server-versions")) {
+ break;
+ case "server-versions":
this.parseServerVersionsLine(line, parts);
- } else if (keyword.equals("published")) {
+ break;
+ case "published":
this.parsePublishedLine(line, parts);
- } else if (keyword.equals("dir-options")) {
+ break;
+ case "dir-options":
this.parseDirOptionsLine(line, parts);
- } else if (line.startsWith("-----BEGIN")) {
- crypto = new StringBuilder();
- crypto.append(line + "\n");
- } else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
- String cryptoString = crypto.toString();
- crypto = null;
- if (nextCrypto.equals("dir-signing-key")) {
- this.dirSigningKey = cryptoString;
+ break;
+ default:
+ if (line.startsWith("-----BEGIN")) {
+ crypto = new StringBuilder();
+ crypto.append(line + "\n");
+ } else if (line.startsWith("-----END")) {
+ crypto.append(line + "\n");
+ String cryptoString = crypto.toString();
+ crypto = null;
+ if (nextCrypto.equals("dir-signing-key")) {
+ this.dirSigningKey = cryptoString;
+ } else {
+ throw new DescriptorParseException("Unrecognized crypto "
+ + "block in v2 network status.");
+ }
+ nextCrypto = "";
+ } else if (crypto != null) {
+ crypto.append(line + "\n");
+ } else if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '" + line
+ + "' in v2 network status.");
} else {
- throw new DescriptorParseException("Unrecognized crypto "
- + "block in v2 network status.");
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- nextCrypto = null;
- } else if (crypto != null) {
- crypto.append(line + "\n");
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '" + line
- + "' in v2 network status.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
- }
- this.unrecognizedLines.add(line);
}
}
}
@@ -154,7 +166,7 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
throws DescriptorParseException {
Scanner s = new Scanner(new String(directorySignatureBytes)).
useDelimiter("\n");
- String nextCrypto = null;
+ String nextCrypto = "";
StringBuilder crypto = null;
while (s.hasNext()) {
String line = s.next();
@@ -176,7 +188,7 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
throw new DescriptorParseException("Unrecognized crypto "
+ "block in v2 network status.");
}
- nextCrypto = null;
+ nextCrypto = "";
} else if (crypto != null) {
crypto.append(line + "\n");
} else if (this.failUnrecognizedDescriptorLines) {
diff --git a/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java b/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java
index b8f0412..d74ef65 100644
--- a/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayNetworkStatusVoteImpl.java
@@ -79,65 +79,90 @@ public class RelayNetworkStatusVoteImpl extends NetworkStatusImpl
String line = s.next();
String[] parts = line.split("[ \t]+");
String keyword = parts[0];
- if (keyword.equals("network-status-version")) {
+ switch (keyword) {
+ case "network-status-version":
this.parseNetworkStatusVersionLine(line, parts);
- } else if (keyword.equals("vote-status")) {
+ break;
+ case "vote-status":
this.parseVoteStatusLine(line, parts);
- } else if (keyword.equals("consensus-methods")) {
+ break;
+ case "consensus-methods":
this.parseConsensusMethodsLine(line, parts);
- } else if (keyword.equals("published")) {
+ break;
+ case "published":
this.parsePublishedLine(line, parts);
- } else if (keyword.equals("valid-after")) {
+ break;
+ case "valid-after":
this.parseValidAfterLine(line, parts);
- } else if (keyword.equals("fresh-until")) {
+ break;
+ case "fresh-until":
this.parseFreshUntilLine(line, parts);
- } else if (keyword.equals("valid-until")) {
+ break;
+ case "valid-until":
this.parseValidUntilLine(line, parts);
- } else if (keyword.equals("voting-delay")) {
+ break;
+ case "voting-delay":
this.parseVotingDelayLine(line, parts);
- } else if (keyword.equals("client-versions")) {
+ break;
+ case "client-versions":
this.parseClientVersionsLine(line, parts);
- } else if (keyword.equals("server-versions")) {
+ break;
+ case "server-versions":
this.parseServerVersionsLine(line, parts);
- } else if (keyword.equals("known-flags")) {
+ break;
+ case "known-flags":
this.parseKnownFlagsLine(line, parts);
- } else if (keyword.equals("flag-thresholds")) {
+ break;
+ case "flag-thresholds":
this.parseFlagThresholdsLine(line, parts);
- } else if (keyword.equals("params")) {
+ break;
+ case "params":
this.parseParamsLine(line, parts);
- } else if (keyword.equals("dir-source")) {
+ break;
+ case "dir-source":
this.parseDirSourceLine(line, parts);
- } else if (keyword.equals("contact")) {
+ break;
+ case "contact":
this.parseContactLine(line, parts);
- } else if (keyword.equals("dir-key-certificate-version")) {
+ break;
+ case "dir-key-certificate-version":
this.parseDirKeyCertificateVersionLine(line, parts);
- } else if (keyword.equals("dir-address")) {
+ break;
+ case "dir-address":
this.parseDirAddressLine(line, parts);
- } else if (keyword.equals("fingerprint")) {
+ break;
+ case "fingerprint":
this.parseFingerprintLine(line, parts);
- } else if (keyword.equals("legacy-dir-key")) {
+ break;
+ case "legacy-dir-key":
this.parseLegacyDirKeyLine(line, parts);
- } else if (keyword.equals("dir-key-published")) {
+ break;
+ case "dir-key-published":
this.parseDirKeyPublished(line, parts);
- } else if (keyword.equals("dir-key-expires")) {
+ break;
+ case "dir-key-expires":
this.parseDirKeyExpiresLine(line, parts);
- } else if (keyword.equals("dir-identity-key") ||
- keyword.equals("dir-signing-key") ||
- keyword.equals("dir-key-crosscert") ||
- keyword.equals("dir-key-certification")) {
- } else if (line.startsWith("-----BEGIN")) {
- skipCrypto = true;
- } else if (line.startsWith("-----END")) {
- skipCrypto = false;
- } else if (!skipCrypto) {
- if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '"
- + line + "' in vote.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ case "dir-identity-key":
+ case "dir-signing-key":
+ case "dir-key-crosscert":
+ case "dir-key-certification":
+ break;
+ default:
+ if (line.startsWith("-----BEGIN")) {
+ skipCrypto = true;
+ } else if (line.startsWith("-----END")) {
+ skipCrypto = false;
+ } else if (!skipCrypto) {
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '"
+ + line + "' in vote.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
@@ -257,27 +282,37 @@ public class RelayNetworkStatusVoteImpl extends NetworkStatusImpl
ParseHelper.parseKeyValueStringPairs(line, parts, 1, "=");
try {
for (Map.Entry<String, String> e : flagThresholds.entrySet()) {
- if (e.getKey().equals("stable-uptime")) {
+ switch (e.getKey()) {
+ case "stable-uptime":
this.stableUptime = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("stable-mtbf")) {
+ break;
+ case "stable-mtbf":
this.stableMtbf = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("fast-speed")) {
+ break;
+ case "fast-speed":
this.fastBandwidth = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("guard-wfu")) {
+ break;
+ case "guard-wfu":
this.guardWfu = Double.parseDouble(e.getValue().
replaceAll("%", ""));
- } else if (e.getKey().equals("guard-tk")) {
+ break;
+ case "guard-tk":
this.guardTk = Long.parseLong(e.getValue());
- } else if (e.getKey().equals("guard-bw-inc-exits")) {
+ break;
+ case "guard-bw-inc-exits":
this.guardBandwidthIncludingExits =
Long.parseLong(e.getValue());
- } else if (e.getKey().equals("guard-bw-exc-exits")) {
+ break;
+ case "guard-bw-exc-exits":
this.guardBandwidthExcludingExits =
Long.parseLong(e.getValue());
- } else if (e.getKey().equals("enough-mtbf")) {
+ break;
+ case "enough-mtbf":
this.enoughMtbfInfo = Integer.parseInt(e.getValue());
- } else if (e.getKey().equals("ignoring-advertised-bws")) {
+ break;
+ case "ignoring-advertised-bws":
this.ignoringAdvertisedBws = Integer.parseInt(e.getValue());
+ break;
}
}
} catch (NumberFormatException ex) {
diff --git a/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java b/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
index ddca784..4ed311e 100644
--- a/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
@@ -54,7 +54,7 @@ public abstract class ServerDescriptorImpl extends DescriptorImpl
private void parseDescriptorBytes() throws DescriptorParseException {
Scanner s = new Scanner(new String(this.rawDescriptorBytes)).
useDelimiter("\n");
- String nextCrypto = null;
+ String nextCrypto = "";
List<String> cryptoLines = null;
while (s.hasNext()) {
String line = s.next();
@@ -65,124 +65,169 @@ public abstract class ServerDescriptorImpl extends DescriptorImpl
line.substring("opt ".length()) : line;
String[] partsNoOpt = lineNoOpt.split("[ \t]+");
String keyword = partsNoOpt[0];
- if (keyword.equals("router")) {
+ switch (keyword) {
+ case "router":
this.parseRouterLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("or-address")) {
+ break;
+ case "or-address":
this.parseOrAddressLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("bandwidth")) {
+ break;
+ case "bandwidth":
this.parseBandwidthLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("platform")) {
+ break;
+ case "platform":
this.parsePlatformLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("published")) {
+ break;
+ case "published":
this.parsePublishedLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("fingerprint")) {
+ break;
+ case "fingerprint":
this.parseFingerprintLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("hibernating")) {
+ break;
+ case "hibernating":
this.parseHibernatingLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("uptime")) {
+ break;
+ case "uptime":
this.parseUptimeLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("onion-key")) {
+ break;
+ case "onion-key":
this.parseOnionKeyLine(line, lineNoOpt, partsNoOpt);
nextCrypto = "onion-key";
- } else if (keyword.equals("signing-key")) {
+ break;
+ case "signing-key":
this.parseSigningKeyLine(line, lineNoOpt, partsNoOpt);
nextCrypto = "signing-key";
- } else if (keyword.equals("accept")) {
+ break;
+ case "accept":
this.parseAcceptLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("reject")) {
+ break;
+ case "reject":
this.parseRejectLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("router-signature")) {
+ break;
+ case "router-signature":
this.parseRouterSignatureLine(line, lineNoOpt, partsNoOpt);
nextCrypto = "router-signature";
- } else if (keyword.equals("contact")) {
+ break;
+ case "contact":
this.parseContactLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("family")) {
+ break;
+ case "family":
this.parseFamilyLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("read-history")) {
+ break;
+ case "read-history":
this.parseReadHistoryLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("write-history")) {
+ break;
+ case "write-history":
this.parseWriteHistoryLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("eventdns")) {
+ break;
+ case "eventdns":
this.parseEventdnsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("caches-extra-info")) {
+ break;
+ case "caches-extra-info":
this.parseCachesExtraInfoLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("extra-info-digest")) {
+ break;
+ case "extra-info-digest":
this.parseExtraInfoDigestLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("hidden-service-dir")) {
+ break;
+ case "hidden-service-dir":
this.parseHiddenServiceDirLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("protocols")) {
+ break;
+ case "protocols":
this.parseProtocolsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("allow-single-hop-exits")) {
+ break;
+ case "allow-single-hop-exits":
this.parseAllowSingleHopExitsLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("dircacheport")) {
+ break;
+ case "dircacheport":
this.parseDircacheportLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("router-digest")) {
+ break;
+ case "router-digest":
this.parseRouterDigestLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("router-digest-sha256")) {
+ break;
+ case "router-digest-sha256":
this.parseRouterDigestSha256Line(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("ipv6-policy")) {
+ break;
+ case "ipv6-policy":
this.parseIpv6PolicyLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("ntor-onion-key")) {
+ break;
+ case "ntor-onion-key":
this.parseNtorOnionKeyLine(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("identity-ed25519")) {
+ break;
+ case "identity-ed25519":
this.parseIdentityEd25519Line(line, lineNoOpt, partsNoOpt);
nextCrypto = "identity-ed25519";
- } else if (keyword.equals("master-key-ed25519")) {
+ break;
+ case "master-key-ed25519":
this.parseMasterKeyEd25519Line(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("router-sig-ed25519")) {
+ break;
+ case "router-sig-ed25519":
this.parseRouterSigEd25519Line(line, lineNoOpt, partsNoOpt);
- } else if (keyword.equals("onion-key-crosscert")) {
+ break;
+ case "onion-key-crosscert":
this.parseOnionKeyCrosscert(line, lineNoOpt, partsNoOpt);
nextCrypto = "onion-key-crosscert";
- } else if (keyword.equals("ntor-onion-key-crosscert")) {
+ break;
+ case "ntor-onion-key-crosscert":
this.parseNtorOnionKeyCrosscert(line, lineNoOpt, partsNoOpt);
nextCrypto = "ntor-onion-key-crosscert";
- } else if (line.startsWith("-----BEGIN")) {
- cryptoLines = new ArrayList<>();
- cryptoLines.add(line);
- } else if (line.startsWith("-----END")) {
- cryptoLines.add(line);
- StringBuilder sb = new StringBuilder();
- for (String cryptoLine : cryptoLines) {
- sb.append("\n" + cryptoLine);
- }
- String cryptoString = sb.toString().substring(1);
- if ("onion-key".equals(nextCrypto)) {
- this.onionKey = cryptoString;
- } else if ("signing-key".equals(nextCrypto)) {
- this.signingKey = cryptoString;
- } else if ("router-signature".equals(nextCrypto)) {
- this.routerSignature = cryptoString;
- } else if ("identity-ed25519".equals(nextCrypto)) {
- this.identityEd25519 = cryptoString;
- this.parseIdentityEd25519CryptoBlock(cryptoString);
- } else if ("onion-key-crosscert".equals(nextCrypto)) {
- this.onionKeyCrosscert = cryptoString;
- } else if ("ntor-onion-key-crosscert".equals(nextCrypto)) {
- this.ntorOnionKeyCrosscert = cryptoString;
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized crypto "
- + "block '" + cryptoString + "' in server descriptor.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ default:
+ if (line.startsWith("-----BEGIN")) {
+ cryptoLines = new ArrayList<>();
+ cryptoLines.add(line);
+ } else if (line.startsWith("-----END")) {
+ cryptoLines.add(line);
+ StringBuilder sb = new StringBuilder();
+ for (String cryptoLine : cryptoLines) {
+ sb.append("\n" + cryptoLine);
}
- this.unrecognizedLines.addAll(cryptoLines);
- }
- cryptoLines = null;
- nextCrypto = null;
- } else if (cryptoLines != null) {
- cryptoLines.add(line);
- } else {
- ParseHelper.parseKeyword(line, partsNoOpt[0]);
- if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized line '"
- + line + "' in server descriptor.");
+ String cryptoString = sb.toString().substring(1);
+ switch (nextCrypto) {
+ case "onion-key":
+ this.onionKey = cryptoString;
+ break;
+ case "signing-key":
+ this.signingKey = cryptoString;
+ break;
+ case "router-signature":
+ this.routerSignature = cryptoString;
+ break;
+ case "identity-ed25519":
+ this.identityEd25519 = cryptoString;
+ this.parseIdentityEd25519CryptoBlock(cryptoString);
+ break;
+ case "onion-key-crosscert":
+ this.onionKeyCrosscert = cryptoString;
+ break;
+ case "ntor-onion-key-crosscert":
+ this.ntorOnionKeyCrosscert = cryptoString;
+ break;
+ default:
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized crypto "
+ + "block '" + cryptoString + "' in server descriptor.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.addAll(cryptoLines);
+ }
+ }
+ cryptoLines = null;
+ nextCrypto = "";
+ } else if (cryptoLines != null) {
+ cryptoLines.add(line);
} else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ ParseHelper.parseKeyword(line, partsNoOpt[0]);
+ if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized line '"
+ + line + "' in server descriptor.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
}
diff --git a/src/org/torproject/descriptor/impl/TorperfResultImpl.java b/src/org/torproject/descriptor/impl/TorperfResultImpl.java
index aad8e32..26e0e4a 100644
--- a/src/org/torproject/descriptor/impl/TorperfResultImpl.java
+++ b/src/org/torproject/descriptor/impl/TorperfResultImpl.java
@@ -79,60 +79,85 @@ public class TorperfResultImpl extends DescriptorImpl
String key = keyValueParts[0];
this.markKeyAsParsed(key, line);
String value = keyValueParts[1];
- if (key.equals("SOURCE")) {
+ switch (key) {
+ case "SOURCE":
this.parseSource(value, keyValue, line);
- } else if (key.equals("FILESIZE")) {
+ break;
+ case "FILESIZE":
this.parseFileSize(value, keyValue, line);
- } else if (key.equals("START")) {
+ break;
+ case "START":
this.parseStart(value, keyValue, line);
- } else if (key.equals("SOCKET")) {
+ break;
+ case "SOCKET":
this.parseSocket(value, keyValue, line);
- } else if (key.equals("CONNECT")) {
+ break;
+ case "CONNECT":
this.parseConnect(value, keyValue, line);
- } else if (key.equals("NEGOTIATE")) {
+ break;
+ case "NEGOTIATE":
this.parseNegotiate(value, keyValue, line);
- } else if (key.equals("REQUEST")) {
+ break;
+ case "REQUEST":
this.parseRequest(value, keyValue, line);
- } else if (key.equals("RESPONSE")) {
+ break;
+ case "RESPONSE":
this.parseResponse(value, keyValue, line);
- } else if (key.equals("DATAREQUEST")) {
+ break;
+ case "DATAREQUEST":
this.parseDataRequest(value, keyValue, line);
- } else if (key.equals("DATARESPONSE")) {
+ break;
+ case "DATARESPONSE":
this.parseDataResponse(value, keyValue, line);
- } else if (key.equals("DATACOMPLETE")) {
+ break;
+ case "DATACOMPLETE":
this.parseDataComplete(value, keyValue, line);
- } else if (key.equals("WRITEBYTES")) {
+ break;
+ case "WRITEBYTES":
this.parseWriteBytes(value, keyValue, line);
- } else if (key.equals("READBYTES")) {
+ break;
+ case "READBYTES":
this.parseReadBytes(value, keyValue, line);
- } else if (key.equals("DIDTIMEOUT")) {
+ break;
+ case "DIDTIMEOUT":
this.parseDidTimeout(value, keyValue, line);
- } else if (key.startsWith("DATAPERC")) {
- this.parseDataPercentile(value, keyValue, line);
- } else if (key.equals("LAUNCH")) {
+ break;
+ case "LAUNCH":
this.parseLaunch(value, keyValue, line);
- } else if (key.equals("USED_AT")) {
+ break;
+ case "USED_AT":
this.parseUsedAt(value, keyValue, line);
- } else if (key.equals("PATH")) {
+ break;
+ case "PATH":
this.parsePath(value, keyValue, line);
- } else if (key.equals("BUILDTIMES")) {
+ break;
+ case "BUILDTIMES":
this.parseBuildTimes(value, keyValue, line);
- } else if (key.equals("TIMEOUT")) {
+ break;
+ case "TIMEOUT":
this.parseTimeout(value, keyValue, line);
- } else if (key.equals("QUANTILE")) {
+ break;
+ case "QUANTILE":
this.parseQuantile(value, keyValue, line);
- } else if (key.equals("CIRC_ID")) {
+ break;
+ case "CIRC_ID":
this.parseCircId(value, keyValue, line);
- } else if (key.equals("USED_BY")) {
+ break;
+ case "USED_BY":
this.parseUsedBy(value, keyValue, line);
- } else if (this.failUnrecognizedDescriptorLines) {
- throw new DescriptorParseException("Unrecognized key '" + key
- + "' in line '" + line + "'.");
- } else {
- if (this.unrecognizedLines == null) {
- this.unrecognizedLines = new ArrayList<>();
+ break;
+ default:
+ if (key.startsWith("DATAPERC")) {
+ this.parseDataPercentile(value, keyValue, line);
+ } else if (this.failUnrecognizedDescriptorLines) {
+ throw new DescriptorParseException("Unrecognized key '" + key
+ + "' in line '" + line + "'.");
+ } else {
+ if (this.unrecognizedLines == null) {
+ this.unrecognizedLines = new ArrayList<>();
+ }
+ this.unrecognizedLines.add(line);
}
- this.unrecognizedLines.add(line);
}
}
this.checkAllRequiredKeysParsed(line);
1
0
[metrics-lib/master] Add change log entry for #17823, #17824, and #17830.
by karsten@torproject.org 25 Dec '15
by karsten@torproject.org 25 Dec '15
25 Dec '15
commit 623d149f810024045731cdb39d90bce0eea7151c
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Wed Dec 23 12:19:55 2015 +0100
Add change log entry for #17823, #17824, and #17830.
---
CHANGELOG.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 73e9a1e..cb49133 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,10 @@
- Support onion-key and ntor-onion-key cross certificates in server
descriptors.
+ * Minor changes
+ - Start using Java 7 features like the diamond operator and switch
+ on String, and use StringBuilder correctly in many places.
+
# Changes in version 1.0.0 - 2015-12-05
1
0
commit 77bea15579e1b4a9c50bbe4fa52afef220459643
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Dec 22 17:25:02 2015 +0100
Use StringBuilder correctly.
We shouldn't call someStringBuilder.append(someString + "\n"), but
rather someStringBuilder.append(someString).append("\n"), or Java will
internally build another StringBuilder for the + part.
Suggested by iwakeh, implements #17830.
---
.../descriptor/impl/DescriptorCollectorImpl.java | 2 +-
.../impl/DirectoryKeyCertificateImpl.java | 6 +-
.../descriptor/impl/DirectorySignatureImpl.java | 6 +-
.../descriptor/impl/ExtraInfoDescriptorImpl.java | 2 +-
.../descriptor/impl/MicrodescriptorImpl.java | 6 +-
.../descriptor/impl/RelayDirectoryImpl.java | 16 +--
.../descriptor/impl/RelayNetworkStatusImpl.java | 12 +--
.../descriptor/impl/ServerDescriptorImpl.java | 2 +-
.../descriptor/impl/BridgeNetworkStatusTest.java | 10 +-
.../descriptor/impl/ConsensusBuilder.java | 42 ++++----
.../impl/ExtraInfoDescriptorImplTest.java | 108 ++++++++++----------
.../descriptor/impl/MicrodescriptorImplTest.java | 6 +-
.../impl/RelayNetworkStatusConsensusImplTest.java | 16 +--
.../impl/RelayNetworkStatusVoteImplTest.java | 64 ++++++------
.../descriptor/impl/ServerDescriptorImplTest.java | 62 +++++------
15 files changed, 180 insertions(+), 180 deletions(-)
diff --git a/src/org/torproject/descriptor/impl/DescriptorCollectorImpl.java b/src/org/torproject/descriptor/impl/DescriptorCollectorImpl.java
index 49c7995..1a030ef 100644
--- a/src/org/torproject/descriptor/impl/DescriptorCollectorImpl.java
+++ b/src/org/torproject/descriptor/impl/DescriptorCollectorImpl.java
@@ -124,7 +124,7 @@ public class DescriptorCollectorImpl implements DescriptorCollector {
huc.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
- sb.append(line + "\n");
+ sb.append(line).append("\n");
}
br.close();
}
diff --git a/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java b/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
index fcbf3f7..2b7d3ea 100644
--- a/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
+++ b/src/org/torproject/descriptor/impl/DirectoryKeyCertificateImpl.java
@@ -101,9 +101,9 @@ public class DirectoryKeyCertificateImpl extends DescriptorImpl
default:
if (line.startsWith("-----BEGIN")) {
crypto = new StringBuilder();
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
String cryptoString = crypto.toString();
crypto = null;
switch (nextCrypto) {
@@ -125,7 +125,7 @@ public class DirectoryKeyCertificateImpl extends DescriptorImpl
}
nextCrypto = "";
} else if (crypto != null) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else {
if (this.failUnrecognizedDescriptorLines) {
throw new DescriptorParseException("Unrecognized line '"
diff --git a/src/org/torproject/descriptor/impl/DirectorySignatureImpl.java b/src/org/torproject/descriptor/impl/DirectorySignatureImpl.java
index 27e9cc9..8cf6589 100644
--- a/src/org/torproject/descriptor/impl/DirectorySignatureImpl.java
+++ b/src/org/torproject/descriptor/impl/DirectorySignatureImpl.java
@@ -56,14 +56,14 @@ public class DirectorySignatureImpl implements DirectorySignature {
line, parts[2 + algorithmOffset]);
} else if (line.startsWith("-----BEGIN")) {
crypto = new StringBuilder();
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
String cryptoString = crypto.toString();
crypto = null;
this.signature = cryptoString;
} else if (crypto != null) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else {
if (this.failUnrecognizedDescriptorLines) {
throw new DescriptorParseException("Unrecognized line '"
diff --git a/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java b/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
index 36ff269..4fcf4c9 100644
--- a/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/ExtraInfoDescriptorImpl.java
@@ -246,7 +246,7 @@ public abstract class ExtraInfoDescriptorImpl extends DescriptorImpl
cryptoLines.add(line);
StringBuilder sb = new StringBuilder();
for (String cryptoLine : cryptoLines) {
- sb.append("\n" + cryptoLine);
+ sb.append("\n").append(cryptoLine);
}
String cryptoString = sb.toString().substring(1);
switch (nextCrypto) {
diff --git a/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java b/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
index a70493d..d303fa0 100644
--- a/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/MicrodescriptorImpl.java
@@ -92,9 +92,9 @@ public class MicrodescriptorImpl extends DescriptorImpl
default:
if (line.startsWith("-----BEGIN")) {
crypto = new StringBuilder();
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
String cryptoString = crypto.toString();
crypto = null;
if (nextCrypto.equals("onion-key")) {
@@ -105,7 +105,7 @@ public class MicrodescriptorImpl extends DescriptorImpl
}
nextCrypto = "";
} else if (crypto != null) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else {
ParseHelper.parseKeyword(line, parts[0]);
if (this.failUnrecognizedDescriptorLines) {
diff --git a/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java b/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
index 4d583aa..ac17f54 100644
--- a/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayDirectoryImpl.java
@@ -230,9 +230,9 @@ public class RelayDirectoryImpl extends DescriptorImpl
default:
if (line.startsWith("-----BEGIN")) {
crypto = new StringBuilder();
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
String cryptoString = crypto.toString();
crypto = null;
if (nextCrypto.equals("dir-signing-key") &&
@@ -244,7 +244,7 @@ public class RelayDirectoryImpl extends DescriptorImpl
}
nextCrypto = "";
} else if (crypto != null) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else {
if (this.failUnrecognizedDescriptorLines) {
throw new DescriptorParseException("Unrecognized line '"
@@ -318,9 +318,9 @@ public class RelayDirectoryImpl extends DescriptorImpl
nextCrypto = "directory-signature";
} else if (line.startsWith("-----BEGIN")) {
crypto = new StringBuilder();
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
String cryptoString = crypto.toString();
crypto = null;
if (nextCrypto.equals("directory-signature")) {
@@ -331,7 +331,7 @@ public class RelayDirectoryImpl extends DescriptorImpl
}
nextCrypto = "";
} else if (crypto != null) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (this.failUnrecognizedDescriptorLines) {
throw new DescriptorParseException("Unrecognized line '" + line
+ "' in v2 network status.");
@@ -369,11 +369,11 @@ public class RelayDirectoryImpl extends DescriptorImpl
sb.append("-----BEGIN RSA PUBLIC KEY-----\n");
String keyString = partsNoOpt[1];
while (keyString.length() > 64) {
- sb.append(keyString.substring(0, 64) + "\n");
+ sb.append(keyString.substring(0, 64)).append("\n");
keyString = keyString.substring(64);
}
if (keyString.length() > 0) {
- sb.append(keyString + "\n");
+ sb.append(keyString).append("\n");
}
sb.append("-----END RSA PUBLIC KEY-----\n");
this.dirSigningKey = sb.toString();
diff --git a/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java b/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
index a10ed7a..7788040 100644
--- a/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
+++ b/src/org/torproject/descriptor/impl/RelayNetworkStatusImpl.java
@@ -129,9 +129,9 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
default:
if (line.startsWith("-----BEGIN")) {
crypto = new StringBuilder();
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
String cryptoString = crypto.toString();
crypto = null;
if (nextCrypto.equals("dir-signing-key")) {
@@ -142,7 +142,7 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
}
nextCrypto = "";
} else if (crypto != null) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (this.failUnrecognizedDescriptorLines) {
throw new DescriptorParseException("Unrecognized line '" + line
+ "' in v2 network status.");
@@ -177,9 +177,9 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
nextCrypto = "directory-signature";
} else if (line.startsWith("-----BEGIN")) {
crypto = new StringBuilder();
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (line.startsWith("-----END")) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
String cryptoString = crypto.toString();
crypto = null;
if (nextCrypto.equals("directory-signature")) {
@@ -190,7 +190,7 @@ public class RelayNetworkStatusImpl extends NetworkStatusImpl
}
nextCrypto = "";
} else if (crypto != null) {
- crypto.append(line + "\n");
+ crypto.append(line).append("\n");
} else if (this.failUnrecognizedDescriptorLines) {
throw new DescriptorParseException("Unrecognized line '" + line
+ "' in v2 network status.");
diff --git a/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java b/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
index 4ed311e..84ad2a1 100644
--- a/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
+++ b/src/org/torproject/descriptor/impl/ServerDescriptorImpl.java
@@ -179,7 +179,7 @@ public abstract class ServerDescriptorImpl extends DescriptorImpl
cryptoLines.add(line);
StringBuilder sb = new StringBuilder();
for (String cryptoLine : cryptoLines) {
- sb.append("\n" + cryptoLine);
+ sb.append("\n").append(cryptoLine);
}
String cryptoString = sb.toString().substring(1);
switch (nextCrypto) {
diff --git a/test/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java b/test/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java
index d0e4cb7..0847e13 100644
--- a/test/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java
+++ b/test/org/torproject/descriptor/impl/BridgeNetworkStatusTest.java
@@ -87,21 +87,21 @@ public class BridgeNetworkStatusTest {
}
private void appendHeader(StringBuilder sb) {
if (this.publishedLine != null) {
- sb.append(this.publishedLine + "\n");
+ sb.append(this.publishedLine).append("\n");
}
if (this.flagThresholdsLine != null) {
- sb.append(this.flagThresholdsLine + "\n");
+ sb.append(this.flagThresholdsLine).append("\n");
}
if (this.unrecognizedHeaderLine != null) {
- sb.append(this.unrecognizedHeaderLine + "\n");
+ sb.append(this.unrecognizedHeaderLine).append("\n");
}
}
private void appendStatusEntries(StringBuilder sb) {
for (String statusEntry : this.statusEntries) {
- sb.append(statusEntry + "\n");
+ sb.append(statusEntry).append("\n");
}
if (this.unrecognizedStatusEntryLine != null) {
- sb.append(this.unrecognizedStatusEntryLine + "\n");
+ sb.append(this.unrecognizedStatusEntryLine).append("\n");
}
}
}
diff --git a/test/org/torproject/descriptor/impl/ConsensusBuilder.java b/test/org/torproject/descriptor/impl/ConsensusBuilder.java
index 470523d..b9638fb 100644
--- a/test/org/torproject/descriptor/impl/ConsensusBuilder.java
+++ b/test/org/torproject/descriptor/impl/ConsensusBuilder.java
@@ -235,75 +235,75 @@ public class ConsensusBuilder {
}
private void appendHeader(StringBuilder sb) {
if (this.networkStatusVersionLine != null) {
- sb.append(this.networkStatusVersionLine + "\n");
+ sb.append(this.networkStatusVersionLine).append("\n");
}
if (this.voteStatusLine != null) {
- sb.append(this.voteStatusLine + "\n");
+ sb.append(this.voteStatusLine).append("\n");
}
if (this.consensusMethodLine != null) {
- sb.append(this.consensusMethodLine + "\n");
+ sb.append(this.consensusMethodLine).append("\n");
}
if (this.validAfterLine != null) {
- sb.append(this.validAfterLine + "\n");
+ sb.append(this.validAfterLine).append("\n");
}
if (this.freshUntilLine != null) {
- sb.append(this.freshUntilLine + "\n");
+ sb.append(this.freshUntilLine).append("\n");
}
if (this.validUntilLine != null) {
- sb.append(this.validUntilLine + "\n");
+ sb.append(this.validUntilLine).append("\n");
}
if (this.votingDelayLine != null) {
- sb.append(this.votingDelayLine + "\n");
+ sb.append(this.votingDelayLine).append("\n");
}
if (this.clientVersionsLine != null) {
- sb.append(this.clientVersionsLine + "\n");
+ sb.append(this.clientVersionsLine).append("\n");
}
if (this.serverVersionsLine != null) {
- sb.append(this.serverVersionsLine + "\n");
+ sb.append(this.serverVersionsLine).append("\n");
}
if (this.knownFlagsLine != null) {
- sb.append(this.knownFlagsLine + "\n");
+ sb.append(this.knownFlagsLine).append("\n");
}
if (this.paramsLine != null) {
- sb.append(this.paramsLine + "\n");
+ sb.append(this.paramsLine).append("\n");
}
if (this.unrecognizedHeaderLine != null) {
- sb.append(this.unrecognizedHeaderLine + "\n");
+ sb.append(this.unrecognizedHeaderLine).append("\n");
}
}
private void appendDirSources(StringBuilder sb) {
for (String dirSource : this.dirSources) {
- sb.append(dirSource + "\n");
+ sb.append(dirSource).append("\n");
}
if (this.unrecognizedDirSourceLine != null) {
- sb.append(this.unrecognizedDirSourceLine + "\n");
+ sb.append(this.unrecognizedDirSourceLine).append("\n");
}
}
private void appendStatusEntries(StringBuilder sb) {
for (String statusEntry : this.statusEntries) {
- sb.append(statusEntry + "\n");
+ sb.append(statusEntry).append("\n");
}
if (this.unrecognizedStatusEntryLine != null) {
- sb.append(this.unrecognizedStatusEntryLine + "\n");
+ sb.append(this.unrecognizedStatusEntryLine).append("\n");
}
}
private void appendFooter(StringBuilder sb) {
if (this.directoryFooterLine != null) {
- sb.append(this.directoryFooterLine + "\n");
+ sb.append(this.directoryFooterLine).append("\n");
}
if (this.bandwidthWeightsLine != null) {
- sb.append(this.bandwidthWeightsLine + "\n");
+ sb.append(this.bandwidthWeightsLine).append("\n");
}
if (this.unrecognizedFooterLine != null) {
- sb.append(this.unrecognizedFooterLine + "\n");
+ sb.append(this.unrecognizedFooterLine).append("\n");
}
}
private void appendDirectorySignatures(StringBuilder sb) {
for (String directorySignature : this.directorySignatures) {
- sb.append(directorySignature + "\n");
+ sb.append(directorySignature).append("\n");
}
if (this.unrecognizedDirectorySignatureLine != null) {
- sb.append(this.unrecognizedDirectorySignatureLine + "\n");
+ sb.append(this.unrecognizedDirectorySignatureLine).append("\n");
}
}
}
diff --git a/test/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java b/test/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java
index 33540dc..6843196 100644
--- a/test/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java
+++ b/test/org/torproject/descriptor/impl/ExtraInfoDescriptorImplTest.java
@@ -189,61 +189,61 @@ public class ExtraInfoDescriptorImplTest {
private byte[] buildDescriptor() {
StringBuilder sb = new StringBuilder();
if (this.extraInfoLine != null) {
- sb.append(this.extraInfoLine + "\n");
+ sb.append(this.extraInfoLine).append("\n");
}
if (this.identityEd25519Lines != null) {
- sb.append(this.identityEd25519Lines + "\n");
+ sb.append(this.identityEd25519Lines).append("\n");
}
if (this.masterKeyEd25519Line != null) {
- sb.append(this.masterKeyEd25519Line + "\n");
+ sb.append(this.masterKeyEd25519Line).append("\n");
}
if (this.publishedLine != null) {
- sb.append(this.publishedLine + "\n");
+ sb.append(this.publishedLine).append("\n");
}
if (this.writeHistoryLine != null) {
- sb.append(this.writeHistoryLine + "\n");
+ sb.append(this.writeHistoryLine).append("\n");
}
if (this.readHistoryLine != null) {
- sb.append(this.readHistoryLine + "\n");
+ sb.append(this.readHistoryLine).append("\n");
}
if (this.dirreqWriteHistoryLine != null) {
- sb.append(this.dirreqWriteHistoryLine + "\n");
+ sb.append(this.dirreqWriteHistoryLine).append("\n");
}
if (this.dirreqReadHistoryLine != null) {
- sb.append(this.dirreqReadHistoryLine + "\n");
+ sb.append(this.dirreqReadHistoryLine).append("\n");
}
if (this.geoipDbDigestLine != null) {
- sb.append(this.geoipDbDigestLine + "\n");
+ sb.append(this.geoipDbDigestLine).append("\n");
}
if (this.geoip6DbDigestLine != null) {
- sb.append(this.geoip6DbDigestLine + "\n");
+ sb.append(this.geoip6DbDigestLine).append("\n");
}
if (this.geoipStatsLines != null) {
- sb.append(this.geoipStatsLines + "\n");
+ sb.append(this.geoipStatsLines).append("\n");
}
if (this.dirreqStatsLines != null) {
- sb.append(this.dirreqStatsLines + "\n");
+ sb.append(this.dirreqStatsLines).append("\n");
}
if (this.entryStatsLines != null) {
- sb.append(this.entryStatsLines + "\n");
+ sb.append(this.entryStatsLines).append("\n");
}
if (this.cellStatsLines != null) {
- sb.append(this.cellStatsLines + "\n");
+ sb.append(this.cellStatsLines).append("\n");
}
if (this.connBiDirectLine != null) {
- sb.append(this.connBiDirectLine + "\n");
+ sb.append(this.connBiDirectLine).append("\n");
}
if (this.exitStatsLines != null) {
- sb.append(this.exitStatsLines + "\n");
+ sb.append(this.exitStatsLines).append("\n");
}
if (this.bridgeStatsLines != null) {
- sb.append(this.bridgeStatsLines + "\n");
+ sb.append(this.bridgeStatsLines).append("\n");
}
if (this.hidservStatsLines != null) {
- sb.append(this.hidservStatsLines + "\n");
+ sb.append(this.hidservStatsLines).append("\n");
}
if (this.unrecognizedLine != null) {
- sb.append(this.unrecognizedLine + "\n");
+ sb.append(this.unrecognizedLine).append("\n");
}
if (this.nonAsciiLineBytes != null) {
try {
@@ -260,10 +260,10 @@ public class ExtraInfoDescriptorImplTest {
}
}
if (this.routerSigEd25519Line != null) {
- sb.append(this.routerSigEd25519Line + "\n");
+ sb.append(this.routerSigEd25519Line).append("\n");
}
if (this.routerSignatureLines != null) {
- sb.append(this.routerSignatureLines + "\n");
+ sb.append(this.routerSignatureLines).append("\n");
}
return sb.toString().getBytes();
}
@@ -298,10 +298,10 @@ public class ExtraInfoDescriptorImplTest {
private String buildGeoipStatsLines() {
StringBuilder sb = new StringBuilder();
if (this.geoipStartTimeLine != null) {
- sb.append(this.geoipStartTimeLine + "\n");
+ sb.append(this.geoipStartTimeLine).append("\n");
}
if (this.geoipClientOriginsLine != null) {
- sb.append(this.geoipClientOriginsLine + "\n");
+ sb.append(this.geoipClientOriginsLine).append("\n");
}
String lines = sb.toString();
if (lines.endsWith("\n")) {
@@ -440,43 +440,43 @@ public class ExtraInfoDescriptorImplTest {
private String buildDirreqStatsLines() {
StringBuilder sb = new StringBuilder();
if (this.dirreqStatsEndLine != null) {
- sb.append(this.dirreqStatsEndLine + "\n");
+ sb.append(this.dirreqStatsEndLine).append("\n");
}
if (this.dirreqV3IpsLine != null) {
- sb.append(this.dirreqV3IpsLine + "\n");
+ sb.append(this.dirreqV3IpsLine).append("\n");
}
if (this.dirreqV2IpsLine != null) {
- sb.append(this.dirreqV2IpsLine + "\n");
+ sb.append(this.dirreqV2IpsLine).append("\n");
}
if (this.dirreqV3ReqsLine != null) {
- sb.append(this.dirreqV3ReqsLine + "\n");
+ sb.append(this.dirreqV3ReqsLine).append("\n");
}
if (this.dirreqV2ReqsLine != null) {
- sb.append(this.dirreqV2ReqsLine + "\n");
+ sb.append(this.dirreqV2ReqsLine).append("\n");
}
if (this.dirreqV3RespLine != null) {
- sb.append(this.dirreqV3RespLine + "\n");
+ sb.append(this.dirreqV3RespLine).append("\n");
}
if (this.dirreqV2RespLine != null) {
- sb.append(this.dirreqV2RespLine + "\n");
+ sb.append(this.dirreqV2RespLine).append("\n");
}
if (this.dirreqV2ShareLine != null) {
- sb.append(this.dirreqV2ShareLine + "\n");
+ sb.append(this.dirreqV2ShareLine).append("\n");
}
if (this.dirreqV3ShareLine != null) {
- sb.append(this.dirreqV3ShareLine + "\n");
+ sb.append(this.dirreqV3ShareLine).append("\n");
}
if (this.dirreqV3DirectDlLine != null) {
- sb.append(this.dirreqV3DirectDlLine + "\n");
+ sb.append(this.dirreqV3DirectDlLine).append("\n");
}
if (this.dirreqV2DirectDlLine != null) {
- sb.append(this.dirreqV2DirectDlLine + "\n");
+ sb.append(this.dirreqV2DirectDlLine).append("\n");
}
if (this.dirreqV3TunneledDlLine != null) {
- sb.append(this.dirreqV3TunneledDlLine + "\n");
+ sb.append(this.dirreqV3TunneledDlLine).append("\n");
}
if (this.dirreqV2TunneledDlLine != null) {
- sb.append(this.dirreqV2TunneledDlLine + "\n");
+ sb.append(this.dirreqV2TunneledDlLine).append("\n");
}
String lines = sb.toString();
if (lines.endsWith("\n")) {
@@ -516,10 +516,10 @@ public class ExtraInfoDescriptorImplTest {
private String buildEntryStatsLines() {
StringBuilder sb = new StringBuilder();
if (this.entryStatsEndLine != null) {
- sb.append(this.entryStatsEndLine + "\n");
+ sb.append(this.entryStatsEndLine).append("\n");
}
if (this.entryIpsLine != null) {
- sb.append(this.entryIpsLine + "\n");
+ sb.append(this.entryIpsLine).append("\n");
}
String lines = sb.toString();
if (lines.endsWith("\n")) {
@@ -586,19 +586,19 @@ public class ExtraInfoDescriptorImplTest {
private String buildCellStatsLines() {
StringBuilder sb = new StringBuilder();
if (this.cellStatsEndLine != null) {
- sb.append(this.cellStatsEndLine + "\n");
+ sb.append(this.cellStatsEndLine).append("\n");
}
if (this.cellProcessedCellsLine != null) {
- sb.append(this.cellProcessedCellsLine + "\n");
+ sb.append(this.cellProcessedCellsLine).append("\n");
}
if (this.cellQueuedCellsLine != null) {
- sb.append(this.cellQueuedCellsLine + "\n");
+ sb.append(this.cellQueuedCellsLine).append("\n");
}
if (this.cellTimeInQueueLine != null) {
- sb.append(this.cellTimeInQueueLine + "\n");
+ sb.append(this.cellTimeInQueueLine).append("\n");
}
if (this.cellCircuitsPerDecileLine != null) {
- sb.append(this.cellCircuitsPerDecileLine + "\n");
+ sb.append(this.cellCircuitsPerDecileLine).append("\n");
}
String lines = sb.toString();
if (lines.endsWith("\n")) {
@@ -659,16 +659,16 @@ public class ExtraInfoDescriptorImplTest {
private String buildExitStatsLines() {
StringBuilder sb = new StringBuilder();
if (this.exitStatsEndLine != null) {
- sb.append(this.exitStatsEndLine + "\n");
+ sb.append(this.exitStatsEndLine).append("\n");
}
if (this.exitKibibytesWrittenLine != null) {
- sb.append(this.exitKibibytesWrittenLine + "\n");
+ sb.append(this.exitKibibytesWrittenLine).append("\n");
}
if (this.exitKibibytesReadLine != null) {
- sb.append(this.exitKibibytesReadLine + "\n");
+ sb.append(this.exitKibibytesReadLine).append("\n");
}
if (this.exitStreamsOpenedLine != null) {
- sb.append(this.exitStreamsOpenedLine + "\n");
+ sb.append(this.exitStreamsOpenedLine).append("\n");
}
String lines = sb.toString();
if (lines.endsWith("\n")) {
@@ -724,16 +724,16 @@ public class ExtraInfoDescriptorImplTest {
private String buildBridgeStatsLines() {
StringBuilder sb = new StringBuilder();
if (this.bridgeStatsEndLine != null) {
- sb.append(this.bridgeStatsEndLine + "\n");
+ sb.append(this.bridgeStatsEndLine).append("\n");
}
if (this.bridgeIpsLine != null) {
- sb.append(this.bridgeIpsLine + "\n");
+ sb.append(this.bridgeIpsLine).append("\n");
}
if (this.bridgeIpVersionsLine != null) {
- sb.append(this.bridgeIpVersionsLine + "\n");
+ sb.append(this.bridgeIpVersionsLine).append("\n");
}
if (this.bridgeIpTransportsLine != null) {
- sb.append(this.bridgeIpTransportsLine + "\n");
+ sb.append(this.bridgeIpTransportsLine).append("\n");
}
String lines = sb.toString();
if (lines.endsWith("\n")) {
@@ -783,13 +783,13 @@ public class ExtraInfoDescriptorImplTest {
private String buildHidservStatsLines() {
StringBuilder sb = new StringBuilder();
if (this.hidservStatsEndLine != null) {
- sb.append(this.hidservStatsEndLine + "\n");
+ sb.append(this.hidservStatsEndLine).append("\n");
}
if (this.hidservRendRelayedCellsLine != null) {
- sb.append(this.hidservRendRelayedCellsLine + "\n");
+ sb.append(this.hidservRendRelayedCellsLine).append("\n");
}
if (this.hidservDirOnionsSeenLine != null) {
- sb.append(this.hidservDirOnionsSeenLine + "\n");
+ sb.append(this.hidservDirOnionsSeenLine).append("\n");
}
String lines = sb.toString();
if (lines.endsWith("\n")) {
diff --git a/test/org/torproject/descriptor/impl/MicrodescriptorImplTest.java b/test/org/torproject/descriptor/impl/MicrodescriptorImplTest.java
index ab4b8c8..abb51db 100644
--- a/test/org/torproject/descriptor/impl/MicrodescriptorImplTest.java
+++ b/test/org/torproject/descriptor/impl/MicrodescriptorImplTest.java
@@ -39,13 +39,13 @@ public class MicrodescriptorImplTest {
private byte[] buildDescriptor() {
StringBuilder sb = new StringBuilder();
if (this.onionKeyLines != null) {
- sb.append(this.onionKeyLines + "\n");
+ sb.append(this.onionKeyLines).append("\n");
}
if (this.ntorOnionKeyLine != null) {
- sb.append(this.ntorOnionKeyLine + "\n");
+ sb.append(this.ntorOnionKeyLine).append("\n");
}
if (this.idLine != null) {
- sb.append(this.idLine + "\n");
+ sb.append(this.idLine).append("\n");
}
return sb.toString().getBytes();
}
diff --git a/test/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java b/test/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java
index 1875774..42feb8b 100644
--- a/test/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java
+++ b/test/org/torproject/descriptor/impl/RelayNetworkStatusConsensusImplTest.java
@@ -107,12 +107,12 @@ public class RelayNetworkStatusConsensusImplTest {
String dirSourceLine = "dir-source " + this.nickname + " "
+ this.identity + " " + this.hostName + " " + this.address + " "
+ this.dirPort + " " + this.orPort;
- sb.append(dirSourceLine + "\n");
+ sb.append(dirSourceLine).append("\n");
if (this.contactLine != null) {
- sb.append(this.contactLine + "\n");
+ sb.append(this.contactLine).append("\n");
}
if (this.voteDigestLine != null) {
- sb.append(this.voteDigestLine + "\n");
+ sb.append(this.voteDigestLine).append("\n");
}
String dirSourceWithTrailingNewLine = sb.toString();
String dirSource = dirSourceWithTrailingNewLine.substring(0,
@@ -218,18 +218,18 @@ public class RelayNetworkStatusConsensusImplTest {
String rLine = "r " + nickname + " " + fingerprintBase64 + " "
+ descriptorBase64 + " " + publishedString + " " + address + " "
+ orPort + " " + dirPort;
- sb.append(rLine + "\n");
+ sb.append(rLine).append("\n");
if (this.sLine != null) {
- sb.append(this.sLine + "\n");
+ sb.append(this.sLine).append("\n");
}
if (this.vLine != null) {
- sb.append(this.vLine + "\n");
+ sb.append(this.vLine).append("\n");
}
if (this.wLine != null) {
- sb.append(this.wLine + "\n");
+ sb.append(this.wLine).append("\n");
}
if (this.pLine != null) {
- sb.append(this.pLine + "\n");
+ sb.append(this.pLine).append("\n");
}
String statusEntryWithTrailingNewLine = sb.toString();
String statusEntry = statusEntryWithTrailingNewLine.substring(0,
diff --git a/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java b/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
index 34e7721..c6b2fc7 100644
--- a/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
+++ b/test/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
@@ -378,108 +378,108 @@ public class RelayNetworkStatusVoteImplTest {
}
private void appendHeader(StringBuilder sb) {
if (this.networkStatusVersionLine != null) {
- sb.append(this.networkStatusVersionLine + "\n");
+ sb.append(this.networkStatusVersionLine).append("\n");
}
if (this.voteStatusLine != null) {
- sb.append(this.voteStatusLine + "\n");
+ sb.append(this.voteStatusLine).append("\n");
}
if (this.consensusMethodsLine != null) {
- sb.append(this.consensusMethodsLine + "\n");
+ sb.append(this.consensusMethodsLine).append("\n");
}
if (this.publishedLine != null) {
- sb.append(this.publishedLine + "\n");
+ sb.append(this.publishedLine).append("\n");
}
if (this.validAfterLine != null) {
- sb.append(this.validAfterLine + "\n");
+ sb.append(this.validAfterLine).append("\n");
}
if (this.freshUntilLine != null) {
- sb.append(this.freshUntilLine + "\n");
+ sb.append(this.freshUntilLine).append("\n");
}
if (this.validUntilLine != null) {
- sb.append(this.validUntilLine + "\n");
+ sb.append(this.validUntilLine).append("\n");
}
if (this.votingDelayLine != null) {
- sb.append(this.votingDelayLine + "\n");
+ sb.append(this.votingDelayLine).append("\n");
}
if (this.clientVersionsLine != null) {
- sb.append(this.clientVersionsLine + "\n");
+ sb.append(this.clientVersionsLine).append("\n");
}
if (this.serverVersionsLine != null) {
- sb.append(this.serverVersionsLine + "\n");
+ sb.append(this.serverVersionsLine).append("\n");
}
if (this.knownFlagsLine != null) {
- sb.append(this.knownFlagsLine + "\n");
+ sb.append(this.knownFlagsLine).append("\n");
}
if (this.flagThresholdsLine != null) {
- sb.append(this.flagThresholdsLine + "\n");
+ sb.append(this.flagThresholdsLine).append("\n");
}
if (this.paramsLine != null) {
- sb.append(this.paramsLine + "\n");
+ sb.append(this.paramsLine).append("\n");
}
if (this.unrecognizedHeaderLine != null) {
- sb.append(this.unrecognizedHeaderLine + "\n");
+ sb.append(this.unrecognizedHeaderLine).append("\n");
}
}
private void appendDirSource(StringBuilder sb) {
if (this.dirSourceLine != null) {
- sb.append(this.dirSourceLine + "\n");
+ sb.append(this.dirSourceLine).append("\n");
}
if (this.contactLine != null) {
- sb.append(this.contactLine + "\n");
+ sb.append(this.contactLine).append("\n");
}
if (this.legacyDirKeyLine != null) {
- sb.append(this.legacyDirKeyLine + "\n");
+ sb.append(this.legacyDirKeyLine).append("\n");
}
if (this.dirKeyCertificateVersionLine != null) {
- sb.append(this.dirKeyCertificateVersionLine + "\n");
+ sb.append(this.dirKeyCertificateVersionLine).append("\n");
}
if (this.fingerprintLine != null) {
- sb.append(this.fingerprintLine + "\n");
+ sb.append(this.fingerprintLine).append("\n");
}
if (this.dirKeyPublishedLine != null) {
- sb.append(this.dirKeyPublishedLine + "\n");
+ sb.append(this.dirKeyPublishedLine).append("\n");
}
if (this.dirKeyExpiresLine != null) {
- sb.append(this.dirKeyExpiresLine + "\n");
+ sb.append(this.dirKeyExpiresLine).append("\n");
}
if (this.dirIdentityKeyLines != null) {
- sb.append(this.dirIdentityKeyLines + "\n");
+ sb.append(this.dirIdentityKeyLines).append("\n");
}
if (this.dirSigningKeyLines != null) {
- sb.append(this.dirSigningKeyLines + "\n");
+ sb.append(this.dirSigningKeyLines).append("\n");
}
if (this.dirKeyCrosscertLines != null) {
- sb.append(this.dirKeyCrosscertLines + "\n");
+ sb.append(this.dirKeyCrosscertLines).append("\n");
}
if (this.dirKeyCertificationLines != null) {
- sb.append(this.dirKeyCertificationLines + "\n");
+ sb.append(this.dirKeyCertificationLines).append("\n");
}
if (this.unrecognizedDirSourceLine != null) {
- sb.append(this.unrecognizedDirSourceLine + "\n");
+ sb.append(this.unrecognizedDirSourceLine).append("\n");
}
}
private void appendStatusEntries(StringBuilder sb) {
for (String statusEntry : this.statusEntries) {
- sb.append(statusEntry + "\n");
+ sb.append(statusEntry).append("\n");
}
if (this.unrecognizedStatusEntryLine != null) {
- sb.append(this.unrecognizedStatusEntryLine + "\n");
+ sb.append(this.unrecognizedStatusEntryLine).append("\n");
}
}
private void appendFooter(StringBuilder sb) {
if (this.directoryFooterLine != null) {
- sb.append(this.directoryFooterLine + "\n");
+ sb.append(this.directoryFooterLine).append("\n");
}
if (this.unrecognizedFooterLine != null) {
- sb.append(this.unrecognizedFooterLine + "\n");
+ sb.append(this.unrecognizedFooterLine).append("\n");
}
}
private void appendDirectorySignature(StringBuilder sb) {
if (this.directorySignatureLines != null) {
- sb.append(directorySignatureLines + "\n");
+ sb.append(directorySignatureLines).append("\n");
}
if (this.unrecognizedDirectorySignatureLine != null) {
- sb.append(this.unrecognizedDirectorySignatureLine + "\n");
+ sb.append(this.unrecognizedDirectorySignatureLine).append("\n");
}
}
}
diff --git a/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java b/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
index 41be8ea..292afce 100644
--- a/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
+++ b/test/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
@@ -256,85 +256,85 @@ public class ServerDescriptorImplTest {
private byte[] buildDescriptor() {
StringBuilder sb = new StringBuilder();
if (this.routerLine != null) {
- sb.append(this.routerLine + "\n");
+ sb.append(this.routerLine).append("\n");
}
if (this.identityEd25519Lines != null) {
- sb.append(this.identityEd25519Lines + "\n");
+ sb.append(this.identityEd25519Lines).append("\n");
}
if (this.masterKeyEd25519Line != null) {
- sb.append(this.masterKeyEd25519Line + "\n");
+ sb.append(this.masterKeyEd25519Line).append("\n");
}
if (this.bandwidthLine != null) {
- sb.append(this.bandwidthLine + "\n");
+ sb.append(this.bandwidthLine).append("\n");
}
if (this.platformLine != null) {
- sb.append(this.platformLine + "\n");
+ sb.append(this.platformLine).append("\n");
}
if (this.publishedLine != null) {
- sb.append(this.publishedLine + "\n");
+ sb.append(this.publishedLine).append("\n");
}
if (this.fingerprintLine != null) {
- sb.append(this.fingerprintLine + "\n");
+ sb.append(this.fingerprintLine).append("\n");
}
if (this.hibernatingLine != null) {
- sb.append(this.hibernatingLine + "\n");
+ sb.append(this.hibernatingLine).append("\n");
}
if (this.uptimeLine != null) {
- sb.append(this.uptimeLine + "\n");
+ sb.append(this.uptimeLine).append("\n");
}
if (this.onionKeyLines != null) {
- sb.append(this.onionKeyLines + "\n");
+ sb.append(this.onionKeyLines).append("\n");
}
if (this.signingKeyLines != null) {
- sb.append(this.signingKeyLines + "\n");
+ sb.append(this.signingKeyLines).append("\n");
}
if (this.onionKeyCrosscertLines != null) {
- sb.append(this.onionKeyCrosscertLines + "\n");
+ sb.append(this.onionKeyCrosscertLines).append("\n");
}
if (this.ntorOnionKeyCrosscertLines != null) {
- sb.append(this.ntorOnionKeyCrosscertLines + "\n");
+ sb.append(this.ntorOnionKeyCrosscertLines).append("\n");
}
if (this.exitPolicyLines != null) {
- sb.append(this.exitPolicyLines + "\n");
+ sb.append(this.exitPolicyLines).append("\n");
}
if (this.contactLine != null) {
- sb.append(this.contactLine + "\n");
+ sb.append(this.contactLine).append("\n");
}
if (this.familyLine != null) {
- sb.append(this.familyLine + "\n");
+ sb.append(this.familyLine).append("\n");
}
if (this.readHistoryLine != null) {
- sb.append(this.readHistoryLine + "\n");
+ sb.append(this.readHistoryLine).append("\n");
}
if (this.writeHistoryLine != null) {
- sb.append(this.writeHistoryLine + "\n");
+ sb.append(this.writeHistoryLine).append("\n");
}
if (this.eventdnsLine != null) {
- sb.append(this.eventdnsLine + "\n");
+ sb.append(this.eventdnsLine).append("\n");
}
if (this.cachesExtraInfoLine != null) {
- sb.append(this.cachesExtraInfoLine + "\n");
+ sb.append(this.cachesExtraInfoLine).append("\n");
}
if (this.extraInfoDigestLine != null) {
- sb.append(this.extraInfoDigestLine + "\n");
+ sb.append(this.extraInfoDigestLine).append("\n");
}
if (this.hiddenServiceDirLine != null) {
- sb.append(this.hiddenServiceDirLine + "\n");
+ sb.append(this.hiddenServiceDirLine).append("\n");
}
if (this.protocolsLine != null) {
- sb.append(this.protocolsLine + "\n");
+ sb.append(this.protocolsLine).append("\n");
}
if (this.allowSingleHopExitsLine != null) {
- sb.append(this.allowSingleHopExitsLine + "\n");
+ sb.append(this.allowSingleHopExitsLine).append("\n");
}
if (this.ipv6PolicyLine != null) {
- sb.append(this.ipv6PolicyLine + "\n");
+ sb.append(this.ipv6PolicyLine).append("\n");
}
if (this.ntorOnionKeyLine != null) {
- sb.append(this.ntorOnionKeyLine + "\n");
+ sb.append(this.ntorOnionKeyLine).append("\n");
}
if (this.unrecognizedLine != null) {
- sb.append(this.unrecognizedLine + "\n");
+ sb.append(this.unrecognizedLine).append("\n");
}
if (this.nonAsciiLineBytes != null) {
try {
@@ -351,10 +351,10 @@ public class ServerDescriptorImplTest {
}
}
if (this.routerSigEd25519Line != null) {
- sb.append(this.routerSigEd25519Line + "\n");
+ sb.append(this.routerSigEd25519Line).append("\n");
}
if (this.routerSignatureLines != null) {
- sb.append(this.routerSignatureLines + "\n");
+ sb.append(this.routerSignatureLines).append("\n");
}
return sb.toString().getBytes();
}
@@ -1377,7 +1377,7 @@ public class ServerDescriptorImplTest {
unrecognizedLines.add("-----END RSA PUBLIC KEY-----");
StringBuilder sb = new StringBuilder();
for (String line : unrecognizedLines) {
- sb.append("\n" + line);
+ sb.append("\n").append(line);
}
ServerDescriptor descriptor = DescriptorBuilder.
createWithUnrecognizedLine(sb.toString().substring(1), false);
@@ -1398,7 +1398,7 @@ public class ServerDescriptorImplTest {
unrecognizedLines.add("-----END RSA PUBLIC KEY-----");
StringBuilder sb = new StringBuilder();
for (String line : unrecognizedLines) {
- sb.append("\n" + line);
+ sb.append("\n").append(line);
}
ServerDescriptor descriptor = DescriptorBuilder.
createWithUnrecognizedLine(sb.toString().substring(1), false);
1
0
commit 9a901aaa01eb3c362cc84836b54307b32f44295b
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Wed Dec 23 07:24:59 2015 -0500
changes file correction
---
changes/bug17923 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/changes/bug17923 b/changes/bug17923
index 48026a5..ea39960 100644
--- a/changes/bug17923
+++ b/changes/bug17923
@@ -1,4 +1,4 @@
o Minor bugfixes:
- - Add an #endif to configure.ac so that we correctly detect
+ - Remove an #endif from configure.ac so that we correctly detect
the presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix on
0.2.0.13-alpha.
1
0
commit 2b9b694410fb0a6078290ed1652df608950a25cc
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Tue Dec 22 20:46:15 2015 -0500
Remove config.log from CLEANFILES
Fixes bug 17924; bugfix on 0.2.4.1-alpha.
In ddf5020ea8d51, we added config.log to CLEANFILES in doc/Makefile.am
so that distcheck would be happy about the presence of doc/config.log.
But when we moved to nonrecursie makefiles in 2a4a1496241d6, we
accidentally left that filename unchanged, so that it referred to
config.log instead.
Patch from cypherpunks.
---
changes/bug17924 | 4 ++++
doc/include.am | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/changes/bug17924 b/changes/bug17924
new file mode 100644
index 0000000..aa5cf58
--- /dev/null
+++ b/changes/bug17924
@@ -0,0 +1,4 @@
+ o Minor bugfixes (makefile):
+ - Remove config.log only from make distclean, not from
+ make clean. Fixes bug 17924; bugfix on 0.2.4.1-alpha.
+
diff --git a/doc/include.am b/doc/include.am
index 01a5ef2..7164a4b 100644
--- a/doc/include.am
+++ b/doc/include.am
@@ -90,5 +90,5 @@ doc/tor-gencert.1: doc/tor-gencert.1.in
doc/tor-resolve.1: doc/tor-resolve.1.in
doc/torify.1: doc/torify.1.in
-CLEANFILES+= $(asciidoc_product) config.log
+CLEANFILES+= $(asciidoc_product)
DISTCLEANFILES+= $(html_in) $(man_in)
1
0
23 Dec '15
commit 00fbe591a12c86e93f73a8a56da4a9157844f5a1
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Dec 23 08:03:04 2015 +0000
Adding Cooper Quintin's key
---
gitian/gpg/https-everywhere.gpg | Bin 112546 -> 188424 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/gitian/gpg/https-everywhere.gpg b/gitian/gpg/https-everywhere.gpg
index 96a2f45..43aa4e4 100644
Binary files a/gitian/gpg/https-everywhere.gpg and b/gitian/gpg/https-everywhere.gpg differ
1
0
23 Dec '15
commit 5a518270be8c4a170134d41096927f0cd0fcf3d0
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Dec 23 08:03:04 2015 +0000
Adding Cooper Quintin's key
---
gitian/gpg/https-everywhere.gpg | Bin 112546 -> 188424 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/gitian/gpg/https-everywhere.gpg b/gitian/gpg/https-everywhere.gpg
index 96a2f45..43aa4e4 100644
Binary files a/gitian/gpg/https-everywhere.gpg and b/gitian/gpg/https-everywhere.gpg differ
1
0
commit 77a249124635ee8ac4d62698433aebffa8a1b928
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Dec 23 08:03:04 2015 +0000
Adding Cooper Quintin's key
---
gitian/gpg/https-everywhere.gpg | Bin 112546 -> 188424 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/gitian/gpg/https-everywhere.gpg b/gitian/gpg/https-everywhere.gpg
index 96a2f45..43aa4e4 100644
Binary files a/gitian/gpg/https-everywhere.gpg and b/gitian/gpg/https-everywhere.gpg differ
1
0
commit d0c209c51d856ee78cca1e4ee337d10155a93916
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Tue Dec 22 20:37:02 2015 -0500
Remove extraneous #endif in configure.ac
This will fix the detection of struct in6_addr.s6_addr32 and others
Found and fixed by cypherpunks; bug 17923; bugfix on f948caad7b5bd
---
changes/bug17923 | 4 ++++
configure.ac | 1 -
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/changes/bug17923 b/changes/bug17923
new file mode 100644
index 0000000..48026a5
--- /dev/null
+++ b/changes/bug17923
@@ -0,0 +1,4 @@
+ o Minor bugfixes:
+ - Add an #endif to configure.ac so that we correctly detect
+ the presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix on
+ 0.2.0.13-alpha.
diff --git a/configure.ac b/configure.ac
index 2f75568..bf6d7f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1130,7 +1130,6 @@ AC_CHECK_MEMBERS([struct in6_addr.s6_addr32, struct in6_addr.s6_addr16, struct s
#include <winsock2.h>
#include <ws2tcpip.h>
#endif
-#endif
])
AC_CHECK_TYPES([rlim_t], , ,
1
0
commit ff3e90070fd21788ac2c1c9116f18c9b888c750a
Merge: b9596b8 d0c209c
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Tue Dec 22 20:38:33 2015 -0500
Merge branch 'maint-0.2.7'
changes/bug17923 | 4 ++++
configure.ac | 1 -
2 files changed, 4 insertions(+), 1 deletion(-)
1
0