aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppIqHandling.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-01-28 17:36:09 +0100
committerLinus Jahn <lnj@kaidan.im>2023-01-28 17:36:45 +0100
commit95c8d120b40e0bca89d1b6f83e902de9529e8006 (patch)
treeb04490ee0f61e0720a771d0362aae43fcad12f36 /src/client/QXmppIqHandling.cpp
parent8ac881a544e8fc7f85d78132610fce1b696d2025 (diff)
downloadqxmpp-95c8d120b40e0bca89d1b6f83e902de9529e8006.tar.gz
IqHandling: Don't accept IQ results/errors
Diffstat (limited to 'src/client/QXmppIqHandling.cpp')
-rw-r--r--src/client/QXmppIqHandling.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/client/QXmppIqHandling.cpp b/src/client/QXmppIqHandling.cpp
index be164f0f..ddc980fe 100644
--- a/src/client/QXmppIqHandling.cpp
+++ b/src/client/QXmppIqHandling.cpp
@@ -25,3 +25,16 @@ void QXmpp::Private::sendIqReply(QXmppClient *client,
iq.setId(requestId);
client->reply(std::move(iq), e2eeMetadata);
}
+
+std::tuple<bool, QString, QString> QXmpp::Private::checkIsIqRequest(const QDomElement &el)
+{
+ if (el.tagName() != QStringLiteral("iq")) {
+ return { false, {}, {} };
+ }
+ auto queryElement = el.firstChildElement();
+ auto iqType = el.attribute(QStringLiteral("type"));
+ if (iqType != QStringLiteral("get") && iqType != QStringLiteral("set")) {
+ return { false, {}, {} };
+ }
+ return { true, queryElement.tagName(), queryElement.namespaceURI() };
+}