From ca888c83efcb245cf8f765d544e5a86741479ba8 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Wed, 24 Jun 2020 13:21:51 +1000 Subject: [PATCH] Add debug assertions --- .../src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift | 5 +++++ SignalServiceKit/src/Messages/OWSMessageSender.m | 3 +++ 2 files changed, 8 insertions(+) diff --git a/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift index d82a5f8f0..efac3771e 100644 --- a/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift @@ -90,6 +90,11 @@ public final class MultiDeviceProtocol : NSObject { /// See [Multi Device Message Sending](https://github.com/loki-project/session-protocol-docs/wiki/Multi-Device-Message-Sending) for more information. @objc(sendMessageToDestinationAndLinkedDevices:in:) public static func sendMessageToDestinationAndLinkedDevices(_ messageSend: OWSMessageSend, in transaction: YapDatabaseReadTransaction) { + if !messageSend.isUDSend && messageSend.recipient.recipientId() != getUserHexEncodedPublicKey() { + #if DEBUG + preconditionFailure() + #endif + } let message = messageSend.message let messageSender = SSKEnvironment.shared.messageSender if !isMultiDeviceRequired(for: message) { diff --git a/SignalServiceKit/src/Messages/OWSMessageSender.m b/SignalServiceKit/src/Messages/OWSMessageSender.m index f03a91d70..82bc62614 100644 --- a/SignalServiceKit/src/Messages/OWSMessageSender.m +++ b/SignalServiceKit/src/Messages/OWSMessageSender.m @@ -487,6 +487,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; { [self.udManager ensureSenderCertificateWithSuccess:^(SMKSenderCertificate *senderCertificate) { + OWSAssertDebug(senderCertificate != nil); dispatch_async([OWSDispatch sendingQueue], ^{ [self sendMessageToService:message senderCertificate:senderCertificate success:success failure:failure]; }); @@ -927,6 +928,8 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; { OWSAssertDebug(messageSend); OWSAssertDebug(messageSend.thread || [messageSend.message isKindOfClass:[OWSOutgoingSyncMessage class]]); + NSString *userPublicKey = OWSIdentityManager.sharedManager.identityKeyPair.hexEncodedPublicKey; + OWSAssertDebug(messageSend.isUDSend || [messageSend.recipient.recipientId isEqual:userPublicKey]); TSOutgoingMessage *message = messageSend.message; SignalRecipient *recipient = messageSend.recipient;