diff options
| author | Melvin Keskin <melvo@olomono.de> | 2021-06-30 17:38:47 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-07-06 22:35:53 +0200 |
| commit | 0b947c682c27091dd4afd5900d8e339175e1aba0 (patch) | |
| tree | d880db35de8d3eaefb01ead0043b07901c5cda50 /src/base/QXmppMessage.cpp | |
| parent | 92427f63b3458fac76f64f2993db81d8c4c5d84c (diff) | |
| download | qxmpp-0b947c682c27091dd4afd5900d8e339175e1aba0.tar.gz | |
Add QXmppTrustMessageElement
Diffstat (limited to 'src/base/QXmppMessage.cpp')
| -rw-r--r-- | src/base/QXmppMessage.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/base/QXmppMessage.cpp b/src/base/QXmppMessage.cpp index 5186692d..f0e74735 100644 --- a/src/base/QXmppMessage.cpp +++ b/src/base/QXmppMessage.cpp @@ -28,6 +28,7 @@ #include "QXmppBitsOfBinaryDataList.h" #include "QXmppConstants_p.h" #include "QXmppMixInvitation.h" +#include "QXmppTrustMessageElement.h" #include "QXmppUtils.h" #include <optional> @@ -175,6 +176,9 @@ public: // XEP-0428: Fallback Indication bool isFallback; + + // XEP-0434: Trust Messages (TM) + std::optional<QXmppTrustMessageElement> trustMessageElement; }; QXmppMessagePrivate::QXmppMessagePrivate() @@ -1131,6 +1135,27 @@ void QXmppMessage::setIsFallback(bool isFallback) d->isFallback = isFallback; } +/// +/// Returns an included trust message element as defined by +/// \xep{0434, Trust Messages (TM)}. +/// +/// \since QXmpp 1.5 +/// +std::optional<QXmppTrustMessageElement> QXmppMessage::trustMessageElement() const +{ + return d->trustMessageElement; +} + +/// +/// Sets a trust message element as defined by \xep{0434, Trust Messages (TM)}. +/// +/// \since QXmpp 1.5 +/// +void QXmppMessage::setTrustMessageElement(const std::optional<QXmppTrustMessageElement> &trustMessageElement) +{ + d->trustMessageElement = trustMessageElement; +} + /// \cond void QXmppMessage::parse(const QDomElement &element) { @@ -1328,6 +1353,11 @@ bool QXmppMessage::parseExtension(const QDomElement &element) } else if (checkElement(element, QStringLiteral("fallback"), ns_fallback_indication)) { // XEP-0428: Fallback Indication d->isFallback = true; + } else if (QXmppTrustMessageElement::isTrustMessageElement(element)) { + // XEP-0434: Trust Messages (TM) + QXmppTrustMessageElement trustMessageElement; + trustMessageElement.parse(element); + d->trustMessageElement = trustMessageElement; } else { return false; } @@ -1524,4 +1554,9 @@ void QXmppMessage::serializeExtensions(QXmlStreamWriter *xmlWriter) const xmlWriter->writeDefaultNamespace(ns_fallback_indication); xmlWriter->writeEndElement(); } + + // XEP-0434: Trust Messages (TM) + if (d->trustMessageElement) { + d->trustMessageElement->toXml(xmlWriter); + } } |
