diff options
| author | Melvin Keskin <melvo@olomono.de> | 2022-01-27 16:52:54 +0000 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-03-09 14:08:29 +0100 |
| commit | a69475d8b196605b19e532d62d1fc375630ea8f1 (patch) | |
| tree | 72f61a0b84998bf10dd658f8c9a82475ea754e10 | |
| parent | 6dc8087fcd4544a8bb1580162fc42594ee77429f (diff) | |
| download | qxmpp-a69475d8b196605b19e532d62d1fc375630ea8f1.tar.gz | |
OmemoElement: Omit payload XML element if empty
| -rw-r--r-- | src/base/QXmppOmemoData.cpp | 6 | ||||
| -rw-r--r-- | tests/qxmppmessage/tst_qxmppmessage.cpp | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/base/QXmppOmemoData.cpp b/src/base/QXmppOmemoData.cpp index 6ab0a8d3..c19f9b88 100644 --- a/src/base/QXmppOmemoData.cpp +++ b/src/base/QXmppOmemoData.cpp @@ -768,7 +768,11 @@ void QXmppOmemoElement::toXml(QXmlStreamWriter *writer) const writer->writeEndElement(); // header - helperToXmlAddTextElement(writer, QStringLiteral("payload"), d->payload.toBase64()); + // The payload element is only included if there is a payload. + // An empty OMEMO message does not contain a payload. + if (!d->payload.isEmpty()) { + writer->writeTextElement(QStringLiteral("payload"), d->payload.toBase64()); + } writer->writeEndElement(); // encrypted } diff --git a/tests/qxmppmessage/tst_qxmppmessage.cpp b/tests/qxmppmessage/tst_qxmppmessage.cpp index 60a6562c..fab315ba 100644 --- a/tests/qxmppmessage/tst_qxmppmessage.cpp +++ b/tests/qxmppmessage/tst_qxmppmessage.cpp @@ -1181,11 +1181,12 @@ void tst_QXmppMessage::testOmemoElement() "<message type=\"chat\">" "<encrypted xmlns=\"urn:xmpp:omemo:2\">" "<header sid=\"0\"/>" - "<payload/>" "</encrypted>" "</message>")); QXmppMessage message1; + QVERIFY(!message1.omemoElement()); + parsePacket(message1, xmlIn); QVERIFY(message1.omemoElement()); serializePacket(message1, xmlOut1); |
