diff options
| author | Melvin Keskin <melvo@olomono.de> | 2023-03-21 12:35:55 +0100 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2023-03-29 14:36:12 +0200 |
| commit | 33a5cd99448079a535e2f84c0047e085fea87056 (patch) | |
| tree | 965fb44c936630ddc836a1ea842a03255012cd5e /src | |
| parent | 1e33e82e83f188dd37c2abdb47d77b4c3870835e (diff) | |
| download | qxmpp-33a5cd99448079a535e2f84c0047e085fea87056.tar.gz | |
OmemoManagerPrivate: Finish decryptMessage() if no SCE envelope can be found
Diffstat (limited to 'src')
| -rw-r--r-- | src/omemo/QXmppOmemoManager_p.cpp | 10 |
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); + } } // |
