Add helper method for checking client/server compatibility.

This commit is contained in:
akwizgran
2022-08-16 15:11:53 +01:00
parent de76986ee4
commit 079ef5b3c0
2 changed files with 14 additions and 5 deletions

View File

@@ -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<MailboxVersion> client, List<MailboxVersion> server) {
int common = getHighestCommonMajorVersion(client, server);
return common != API_CLIENT_TOO_OLD && common != API_SERVER_TOO_OLD;
}
}

View File

@@ -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<MailboxVersion> contactClient,
List<MailboxVersion> 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());
}
/**