From 30bfa91fc4d3845d6ff37843bc83b018e48e6642 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Sun, 29 Apr 2018 17:21:38 +0100
Subject: [PATCH] Use new client helper methods for transport properties.

---
 .../contact/ContactExchangeTaskImpl.java      | 22 ++-----------------
 1 file changed, 2 insertions(+), 20 deletions(-)

diff --git a/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactExchangeTaskImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactExchangeTaskImpl.java
index 30e7adde6d..b2f552d088 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactExchangeTaskImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactExchangeTaskImpl.java
@@ -37,9 +37,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.security.GeneralSecurityException;
-import java.util.HashMap;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.logging.Logger;
 
 import javax.inject.Inject;
@@ -47,7 +45,6 @@ import javax.inject.Inject;
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.bramble.api.contact.RecordTypes.CONTACT_INFO;
 import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_SIGNATURE_LENGTH;
-import static org.briarproject.bramble.api.plugin.TransportId.MAX_TRANSPORT_ID_LENGTH;
 import static org.briarproject.bramble.util.ValidationUtils.checkLength;
 import static org.briarproject.bramble.util.ValidationUtils.checkSize;
 
@@ -256,9 +253,7 @@ class ContactExchangeTaskImpl extends Thread implements ContactExchangeTask {
 			Map<TransportId, TransportProperties> properties, byte[] signature,
 			long timestamp) throws IOException {
 		BdfList authorList = clientHelper.toList(author);
-		BdfDictionary props = new BdfDictionary();
-		for (Entry<TransportId, TransportProperties> e : properties.entrySet())
-			props.put(e.getKey().getString(), new BdfDictionary(e.getValue()));
+		BdfDictionary props = clientHelper.toDictionary(properties);
 		BdfList payload = BdfList.of(authorList, props, signature, timestamp);
 		recordWriter.writeRecord(new Record(PROTOCOL_VERSION, CONTACT_INFO,
 				clientHelper.toByteArray(payload)));
@@ -279,7 +274,7 @@ class ContactExchangeTaskImpl extends Thread implements ContactExchangeTask {
 		Author author = clientHelper.parseAndValidateAuthor(payload.getList(0));
 		BdfDictionary props = payload.getDictionary(1);
 		Map<TransportId, TransportProperties> properties =
-				parseTransportProperties(props);
+				clientHelper.parseAndValidateTransportPropertiesMap(props);
 		byte[] signature = payload.getRaw(2);
 		checkLength(signature, 1, MAX_SIGNATURE_LENGTH);
 		long timestamp = payload.getLong(3);
@@ -287,19 +282,6 @@ class ContactExchangeTaskImpl extends Thread implements ContactExchangeTask {
 		return new ContactInfo(author, properties, signature, timestamp);
 	}
 
-	private Map<TransportId, TransportProperties> parseTransportProperties(
-			BdfDictionary props) throws FormatException {
-		Map<TransportId, TransportProperties> properties = new HashMap<>();
-		for (String id : props.keySet()) {
-			checkLength(id, 1, MAX_TRANSPORT_ID_LENGTH);
-			BdfDictionary d = props.getDictionary(id);
-			TransportProperties p =
-					clientHelper.parseAndValidateTransportProperties(d);
-			properties.put(new TransportId(id), p);
-		}
-		return properties;
-	}
-
 	private ContactId addContact(Author remoteAuthor, long timestamp,
 			Map<TransportId, TransportProperties> remoteProperties)
 			throws DbException {
-- 
GitLab