aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMelvin Keskin <melvo@olomono.de>2023-03-21 12:35:55 +0100
committerLinus Jahn <lnj@kaidan.im>2023-03-29 14:36:12 +0200
commit33a5cd99448079a535e2f84c0047e085fea87056 (patch)
tree965fb44c936630ddc836a1ea842a03255012cd5e /src
parent1e33e82e83f188dd37c2abdb47d77b4c3870835e (diff)
downloadqxmpp-33a5cd99448079a535e2f84c0047e085fea87056.tar.gz
OmemoManagerPrivate: Finish decryptMessage() if no SCE envelope can be found
Diffstat (limited to 'src')
-rw-r--r--src/omemo/QXmppOmemoManager_p.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/omemo/QXmppOmemoManager_p.cpp b/src/omemo/QXmppOmemoManager_p.cpp
index afcb706c..52a6d2b0 100644
--- a/src/omemo/QXmppOmemoManager_p.cpp
+++ b/src/omemo/QXmppOmemoManager_p.cpp
@@ -1383,12 +1383,12 @@ QByteArray ManagerPrivate::createOmemoEnvelopeData(const signal_protocol_address
//
QXmppTask<std::optional<QXmppMessage>> ManagerPrivate::decryptMessage(QXmppMessage stanza)
{
- QXmppPromise<std::optional<QXmppMessage>> interface;
-
// At this point, the stanza has always an OMEMO element.
const auto omemoElement = *stanza.omemoElement();
if (auto optionalOmemoEnvelope = omemoElement.searchEnvelope(ownBareJid(), ownDevice.id)) {
+ QXmppPromise<std::optional<QXmppMessage>> interface;
+
const auto senderJid = QXmppUtils::jidToBareJid(stanza.from());
const auto senderDeviceId = omemoElement.senderDeviceId();
const auto omemoEnvelope = *optionalOmemoEnvelope;
@@ -1429,9 +1429,11 @@ QXmppTask<std::optional<QXmppMessage>> ManagerPrivate::decryptMessage(QXmppMessa
}
});
}
- }
- return interface.task();
+ return interface.task();
+ } else {
+ return makeReadyTask<std::optional<QXmppMessage>>(std::nullopt);
+ }
}
//