From: AsamK Date: Thu, 27 Jan 2022 19:03:43 +0000 (+0100) Subject: Output sender also for sealed sender messages that fail to decrypt X-Git-Tag: v0.10.3~8 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/ffaa9d2ed311d74cf14f25fdc0cc75b66991cc3b Output sender also for sealed sender messages that fail to decrypt --- diff --git a/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java b/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java index dde8e166..73e7fe19 100644 --- a/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java +++ b/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java @@ -5,6 +5,7 @@ import org.asamk.signal.manager.groups.GroupUtils; import org.asamk.signal.manager.helper.RecipientAddressResolver; import org.asamk.signal.manager.storage.recipients.RecipientAddress; import org.asamk.signal.manager.storage.recipients.RecipientResolver; +import org.signal.libsignal.metadata.ProtocolException; import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentRemoteId; import org.whispersystems.signalservice.api.messages.SignalServiceContent; @@ -789,16 +790,21 @@ public record MessageEnvelope( SignalServiceContent content, RecipientResolver recipientResolver, RecipientAddressResolver addressResolver, - final AttachmentFileProvider fileProvider + final AttachmentFileProvider fileProvider, + Exception exception ) { final var source = !envelope.isUnidentifiedSender() && envelope.hasSourceUuid() ? recipientResolver.resolveRecipient(envelope.getSourceAddress()) : envelope.isUnidentifiedSender() && content != null ? recipientResolver.resolveRecipient(content.getSender()) - : null; + : exception instanceof ProtocolException e + ? recipientResolver.resolveRecipient(e.getSender()) + : null; final var sourceDevice = envelope.hasSourceDevice() ? envelope.getSourceDevice() - : content != null ? content.getSenderDevice() : 0; + : content != null + ? content.getSenderDevice() + : exception instanceof ProtocolException e ? e.getSenderDevice() : 0; Optional receipt; Optional typing; diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java b/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java index 0ef974e0..d7a50971 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java @@ -184,7 +184,8 @@ public final class IncomingMessageHandler { content, account.getRecipientStore(), account.getRecipientStore()::resolveRecipientAddress, - context.getAttachmentHelper()::getAttachmentFile), exception); + context.getAttachmentHelper()::getAttachmentFile, + exception), exception); return actions; } }