From b920dbcc10c481549343829598781d4933139066 Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Tue, 15 Mar 2022 14:00:36 +1100 Subject: [PATCH] check if the incoming message is already in database before persisting --- SessionMessagingKit/Database/Storage+Messaging.swift | 1 + .../Sending & Receiving/MessageReceiver+Handling.swift | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/SessionMessagingKit/Database/Storage+Messaging.swift b/SessionMessagingKit/Database/Storage+Messaging.swift index 0035217f2..f06b42712 100644 --- a/SessionMessagingKit/Database/Storage+Messaging.swift +++ b/SessionMessagingKit/Database/Storage+Messaging.swift @@ -42,6 +42,7 @@ extension Storage { } tsMessage = tsOutgoingMessage } else { + if let _ = TSIncomingMessage.find(withAuthorId: message.sender!, timestamp: message.sentTimestamp!, transaction: transaction) { return nil } tsMessage = TSIncomingMessage.from(message, quotedMessage: quotedMessage, linkPreview: linkPreview, associatedWith: thread) } tsMessage.save(with: transaction) diff --git a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift index 4ef1d2895..ab23a33f0 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift @@ -365,7 +365,7 @@ extension MessageReceiver { } // Persist the message guard let tsMessageID = storage.persist(message, quotedMessage: tsQuotedMessage, linkPreview: owsLinkPreview, - groupPublicKey: message.groupPublicKey, openGroupID: openGroupID, using: transaction) else { throw Error.noThread } + groupPublicKey: message.groupPublicKey, openGroupID: openGroupID, using: transaction) else { throw Error.duplicateMessage } message.threadID = threadID // Start attachment downloads if needed let isContactTrusted = Storage.shared.getContact(with: message.sender!)?.isTrusted ?? false