From 31e5058b154ac8c858568540ad90629ac851820f Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Thu, 2 Dec 2021 17:18:08 -0800 Subject: [PATCH] Make temporary iOS envelope type adaptation a little wider --- .../textsecuregcm/controllers/MessageController.java | 6 +++--- .../textsecuregcm/controllers/MessageControllerTest.java | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java index 0b99f83c1..448c4a597 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java @@ -112,10 +112,10 @@ public class MessageController { private final ExecutorService multiRecipientMessageExecutor; @VisibleForTesting - static final Semver FIRST_IOS_VERSION_WITH_INCORRECT_ENVELOPE_TYPE = new Semver("5.22.0.32"); + static final Semver FIRST_IOS_VERSION_WITH_INCORRECT_ENVELOPE_TYPE = new Semver("5.22.0"); @VisibleForTesting - static final Semver IOS_VERSION_WITH_FIXED_ENVELOPE_TYPE = new Semver("5.25.0.0"); + static final Semver IOS_VERSION_WITH_FIXED_ENVELOPE_TYPE = new Semver("5.25.0"); private static final String REJECT_OVERSIZE_MESSAGE_COUNTER = name(MessageController.class, "rejectOversizeMessage"); private static final String LEGACY_MESSAGE_SENT_COUNTER = name(MessageController.class, "legacyMessageSent"); @@ -505,7 +505,7 @@ public class MessageController { try { final UserAgent userAgent = UserAgentUtil.parseUserAgentString(userAgentString); if (userAgent.getPlatform() == ClientPlatform.IOS && - userAgent.getVersion().isGreaterThanOrEqualTo(FIRST_IOS_VERSION_WITH_INCORRECT_ENVELOPE_TYPE) && + FIRST_IOS_VERSION_WITH_INCORRECT_ENVELOPE_TYPE.isLowerThanOrEqualTo(userAgent.getVersion()) && userAgent.getVersion().isLowerThan(IOS_VERSION_WITH_FIXED_ENVELOPE_TYPE)) { envelopeTypeNumber = Type.PLAINTEXT_CONTENT.getNumber(); } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java index 55f28932c..7c1a6a54a 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/MessageControllerTest.java @@ -30,6 +30,7 @@ import static org.whispersystems.textsecuregcm.tests.util.JsonHelpers.jsonFixtur import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableSet; +import com.vdurmont.semver4j.Semver; import io.dropwizard.auth.PolymorphicAuthValueFactoryProvider; import io.dropwizard.testing.junit5.DropwizardExtensionsSupport; import io.dropwizard.testing.junit5.ResourceExtension; @@ -232,6 +233,7 @@ class MessageControllerTest { return Stream.of( Arguments.of(String.format("Signal-iOS/%s iOS/14.2", MessageController.FIRST_IOS_VERSION_WITH_INCORRECT_ENVELOPE_TYPE), true), Arguments.of(String.format("Signal-iOS/%s iOS/14.2", MessageController.FIRST_IOS_VERSION_WITH_INCORRECT_ENVELOPE_TYPE.nextPatch()), true), + Arguments.of(String.format("Signal-iOS/%s iOS/14.2", new Semver("5.22.0.38")), true), Arguments.of(String.format("Signal-iOS/%s iOS/14.2", MessageController.IOS_VERSION_WITH_FIXED_ENVELOPE_TYPE.withIncMinor(-1)), true), Arguments.of(String.format("Signal-iOS/%s iOS/14.2", MessageController.IOS_VERSION_WITH_FIXED_ENVELOPE_TYPE), false) );