From 76cb9141fa006f41f6025bbebe97affc4ad72591 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 7 Oct 2021 18:11:22 -0300 Subject: [PATCH] Default errors for message processing. --- SignalServiceKit/src/Messages/MessageProcessor.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/SignalServiceKit/src/Messages/MessageProcessor.swift b/SignalServiceKit/src/Messages/MessageProcessor.swift index 86e530d3b3..f845ce2242 100644 --- a/SignalServiceKit/src/Messages/MessageProcessor.swift +++ b/SignalServiceKit/src/Messages/MessageProcessor.swift @@ -320,7 +320,7 @@ public class MessageProcessor: NSObject { if let sourceAddress = envelope.sourceAddress, blockingManager.isAddressBlocked(sourceAddress) { Logger.info("Skipping processing for blocked envelope: \(sourceAddress)") - let error = OWSGenericError("Ignoring blocked envelope: \(sourceAddress)") + let error = MessageProcessingError.blockedSender transaction.addAsyncCompletionOffMain { pendingEnvelope.completion(error) } @@ -438,17 +438,16 @@ public class MessageProcessor: NSObject { if case MessageProcessingError.duplicatePendingEnvelope = error { // _DO NOT_ ACK if de-duplicated before decryption. return .shouldNotAck(error: error) + } else if case MessageProcessingError.blockedSender = error { + return .shouldAck } else if let owsError = error as? OWSError, owsError.errorCode == OWSErrorCode.failedToDecryptDuplicateMessage.rawValue { // _DO_ ACK if de-duplicated during decryption. return .shouldAck } else { Logger.warn("Failed to process message: \(error)") - Self.databaseStorage.write { transaction in - let errorMessage = ThreadlessErrorMessage.corruptedMessageInUnknownThread() - Self.notificationsManager?.notifyUser(forThreadlessErrorMessage: errorMessage, - transaction: transaction) - } + // This should only happen for malformed envelopes. We may eventually + // want to show an error in this case. return .shouldAck } } @@ -672,4 +671,5 @@ public class PendingEnvelopes { public enum MessageProcessingError: Error { case duplicatePendingEnvelope + case blockedSender }