From 079ef5b3c09ad6b97013f890cf79da9906674dc6 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Tue, 16 Aug 2022 15:11:53 +0100 Subject: [PATCH] Add helper method for checking client/server compatibility. --- .../bramble/api/mailbox/MailboxHelper.java | 9 +++++++++ .../bramble/mailbox/MailboxClientManager.java | 10 +++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxHelper.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxHelper.java index 42740156a..304fded5e 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxHelper.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxHelper.java @@ -35,4 +35,13 @@ public class MailboxHelper { return API_SERVER_TOO_OLD; } + /** + * Returns true if a client and server with the given API versions can + * communicate with each other (ie, have any major API versions in common). + */ + public static boolean isClientCompatibleWithServer( + List client, List server) { + int common = getHighestCommonMajorVersion(client, server); + return common != API_CLIENT_TOO_OLD && common != API_SERVER_TOO_OLD; + } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxClientManager.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxClientManager.java index 7f23024c5..fe91f1b32 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxClientManager.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxClientManager.java @@ -46,7 +46,7 @@ import javax.inject.Inject; import static java.util.logging.Level.WARNING; import static java.util.logging.Logger.getLogger; import static org.briarproject.bramble.api.mailbox.MailboxConstants.CLIENT_SUPPORTS; -import static org.briarproject.bramble.api.mailbox.MailboxHelper.getHighestCommonMajorVersion; +import static org.briarproject.bramble.api.mailbox.MailboxHelper.isClientCompatibleWithServer; import static org.briarproject.bramble.api.nullsafety.NullSafety.requireNonNull; import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE; import static org.briarproject.bramble.api.plugin.TorConstants.ID; @@ -627,8 +627,8 @@ class MailboxClientManager implements Service, EventListener { */ private boolean isMailboxUsable(List contactClient, List server) { - return getHighestCommonMajorVersion(contactClient, server) >= 0 - && getHighestCommonMajorVersion(CLIENT_SUPPORTS, server) >= 0; + return isClientCompatibleWithServer(contactClient, server) + && isClientCompatibleWithServer(CLIENT_SUPPORTS, server); } /** @@ -637,8 +637,8 @@ class MailboxClientManager implements Service, EventListener { */ @SuppressWarnings("BooleanMethodIsAlwaysInverted") private boolean isOwnMailboxUsable(MailboxProperties ownProperties) { - return getHighestCommonMajorVersion(CLIENT_SUPPORTS, - ownProperties.getServerSupports()) >= 0; + return isClientCompatibleWithServer(CLIENT_SUPPORTS, + ownProperties.getServerSupports()); } /**