From 267897b133fc40f96a2873168154bc05c647d3cd Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 14 Feb 2022 14:58:09 -0500 Subject: [PATCH] Improve UD handling for fallback REST sends. Special thanks to @stevie553 for the wonderfully-detailed bug report! Fixes #11991 --- .../signalservice/internal/push/PushServiceSocket.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java index fbee12873..47f06190d 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java @@ -515,10 +515,12 @@ public class PushServiceSocket { throws IOException { try { - String responseText = makeServiceRequest(String.format(MESSAGE_PATH, bundle.getDestination()), "PUT", JsonUtil.toJson(bundle), NO_HEADERS, unidentifiedAccess); + String responseText = makeServiceRequest(String.format(MESSAGE_PATH, bundle.getDestination()), "PUT", JsonUtil.toJson(bundle), NO_HEADERS, unidentifiedAccess); + SendMessageResponse response = JsonUtil.fromJson(responseText, SendMessageResponse.class); - if (responseText == null) return new SendMessageResponse(false, unidentifiedAccess.isPresent()); - else return JsonUtil.fromJson(responseText, SendMessageResponse.class); + response.setSentUnidentfied(unidentifiedAccess.isPresent()); + + return response; } catch (NotFoundException nfe) { throw new UnregisteredUserException(bundle.getDestination(), nfe); }