From aee5e9815fff6ae29148b994126f8d83150c8756 Mon Sep 17 00:00:00 2001
From: goapunk <goapunk@riseup.net>
Date: Mon, 27 Aug 2018 13:28:18 +0200
Subject: [PATCH] Send empty transport properties to the mailbox

---
 .../api/properties/TransportPropertyManager.java    |  6 ++++++
 .../bramble/contact/ContactExchangeTaskImpl.java    | 13 ++++++++-----
 .../properties/TransportPropertyManagerImpl.java    | 10 ++++++++++
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java
index a634bfaa7..f7b98237d 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/properties/TransportPropertyManager.java
@@ -40,6 +40,12 @@ public interface TransportPropertyManager {
 	Map<TransportId, TransportProperties> getLocalProperties()
 			throws DbException;
 
+	/**
+	 * Returns the local anonymized transport properties for all transports.
+	 */
+	Map<TransportId, TransportProperties> getLocalAnonymizedProperties()
+			throws DbException;
+
 	/**
 	 * Returns the local transport properties for all transports.
 	 * <p/>
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 9de67f743..60d7ea0ab 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
@@ -47,6 +47,7 @@ import javax.inject.Inject;
 
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.bramble.api.contact.ContactType.CONTACT;
+import static org.briarproject.bramble.api.contact.ContactType.MAILBOX_OWNER;
 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.util.LogUtils.logException;
@@ -150,7 +151,11 @@ class ContactExchangeTaskImpl extends Thread implements ContactExchangeTask {
 		// Get the local transport properties
 		Map<TransportId, TransportProperties> localProperties;
 		try {
-			localProperties = transportPropertyManager.getLocalProperties();
+			if (localType == MAILBOX_OWNER)
+				localProperties =
+						transportPropertyManager.getLocalAnonymizedProperties();
+			else
+				localProperties = transportPropertyManager.getLocalProperties();
 		} catch (DbException e) {
 			logException(LOG, WARNING, e);
 			listener.contactExchangeFailed();
@@ -332,8 +337,6 @@ class ContactExchangeTaskImpl extends Thread implements ContactExchangeTask {
 					contactId = contactManager.addContact(txn, remoteAuthor,
 							localAuthor.getId(), masterSecret, timestamp, alice,
 							true, true);
-					transportPropertyManager.addRemoteProperties(txn, contactId,
-							remoteProperties);
 					break;
 				case MAILBOX_OWNER:
 					contactId =
@@ -346,12 +349,12 @@ class ContactExchangeTaskImpl extends Thread implements ContactExchangeTask {
 							contactManager.addPrivateMailbox(txn, remoteAuthor,
 									localAuthor.getId(), masterSecret,
 									timestamp, alice);
-					transportPropertyManager.addRemoteProperties(txn, contactId,
-							remoteProperties);
 					break;
 				default:
 					throw new RuntimeException("Invalid remote contact type");
 			}
+			transportPropertyManager.addRemoteProperties(txn, contactId,
+					remoteProperties);
 
 			db.commitTransaction(txn);
 		} finally {
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java
index e76961b9f..0b5015dee 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java
@@ -147,6 +147,16 @@ class TransportPropertyManagerImpl implements TransportPropertyManager,
 		}
 	}
 
+	@Override
+	public Map<TransportId, TransportProperties> getLocalAnonymizedProperties()
+			throws DbException {
+		Map<TransportId, TransportProperties> properties = getLocalProperties();
+		for (Entry e : properties.entrySet()) {
+			e.setValue("");
+		}
+		return properties;
+	}
+
 	@Override
 	public Map<TransportId, TransportProperties> getLocalProperties()
 			throws DbException {
-- 
GitLab