From 0a322d5a9f6cb0354a571a4387cc7fc3ff00b418 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Fri, 15 Jan 2021 17:51:38 -0500 Subject: [PATCH] Add a "doomsday switch." --- .../controllers/MessageController.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 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 9ef2ad33d..2a5264a92 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java @@ -88,7 +88,6 @@ public class MessageController { private final ApnFallbackManager apnFallbackManager; private final FeatureFlagsManager featureFlagsManager; - private final Random random = new Random(); private static final String CONTENT_SIZE_DISTRIBUTION_NAME = name(MessageController.class, "messageContentSize"); private static final String OUTGOING_MESSAGE_LIST_SIZE_BYTES_DISTRIBUTION_NAME = name(MessageController.class, "outgoingMessageListSizeBytes"); @@ -194,15 +193,21 @@ public class MessageController { .type(MediaType.APPLICATION_JSON) .entity(new StaleDevices(e.getStaleDevices())) .build()); - } } else { - return Response.status(503).build(); + } + } else { + if (featureFlagsManager.isFeatureFlagActive("SEND_ALL_200_STATUS")) { + // Forgive me for what I must do + return Response.ok(new SendMessageResponse(false)).build(); + } else { + return Response.status(503).build(); + } } } private boolean shouldSend(final AmbiguousIdentifier destination) { final double hash = destination.sendingGateHash(); - return (hash / 255.0) <= getSuccessPercentage(); + return (hash / 256.0) < getSuccessPercentage(); } private double getSuccessPercentage() {