diff options
Diffstat (limited to 'src/base')
| -rw-r--r-- | src/base/QXmppMessage.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/base/QXmppMessage.cpp b/src/base/QXmppMessage.cpp index 46b8c797..abae1123 100644 --- a/src/base/QXmppMessage.cpp +++ b/src/base/QXmppMessage.cpp @@ -1598,13 +1598,15 @@ void QXmppMessage::serializeExtensions(QXmlStreamWriter *writer, QXmpp::SceMode } // XEP-0184: Message Delivery Receipts + // An ack message (message containing a "received" element) must not + // include a receipt request ("request" element) in order to prevent + // looping. if (!d->receiptId.isEmpty()) { writer->writeStartElement(QStringLiteral("received")); writer->writeDefaultNamespace(ns_message_receipts); writer->writeAttribute(QStringLiteral("id"), d->receiptId); writer->writeEndElement(); - } - if (d->receiptRequested) { + } else if (d->receiptRequested) { writer->writeStartElement(QStringLiteral("request")); writer->writeDefaultNamespace(ns_message_receipts); writer->writeEndElement(); |
