From d014416ac23f73677f8931161bb2257ec09dced7 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Sun, 16 Oct 2022 21:57:24 +0200 Subject: VersionManager: Use new IQ request handling --- src/client/QXmppVersionManager.cpp | 31 ++++++++++++++++++------------- src/client/QXmppVersionManager.h | 1 + 2 files changed, 19 insertions(+), 13 deletions(-) (limited to 'src/client') diff --git a/src/client/QXmppVersionManager.cpp b/src/client/QXmppVersionManager.cpp index a42e3328..f4cabbdc 100644 --- a/src/client/QXmppVersionManager.cpp +++ b/src/client/QXmppVersionManager.cpp @@ -6,12 +6,15 @@ #include "QXmppClient.h" #include "QXmppConstants_p.h" +#include "QXmppIqHandling.h" #include "QXmppVersionIq.h" #include #include #include +using namespace QXmpp; + class QXmppVersionManagerPrivate { public: @@ -119,23 +122,15 @@ QStringList QXmppVersionManager::discoveryFeatures() const bool QXmppVersionManager::handleStanza(const QDomElement &element) { + if (QXmpp::handleIqRequests(element, client(), this)) { + return true; + } + if (element.tagName() == "iq" && QXmppVersionIq::isVersionIq(element)) { QXmppVersionIq versionIq; versionIq.parse(element); - if (versionIq.type() == QXmppIq::Get) { - // respond to query - QXmppVersionIq responseIq; - responseIq.setType(QXmppIq::Result); - responseIq.setId(versionIq.id()); - responseIq.setTo(versionIq.from()); - - responseIq.setName(clientName()); - responseIq.setVersion(clientVersion()); - responseIq.setOs(clientOs()); - - client()->sendPacket(responseIq); - } else if (versionIq.type() == QXmppIq::Result) { + if (versionIq.type() == QXmppIq::Result) { // emit response emit versionReceived(versionIq); } @@ -145,4 +140,14 @@ bool QXmppVersionManager::handleStanza(const QDomElement &element) return false; } + +QXmppVersionIq QXmppVersionManager::handleIq(QXmppVersionIq &&iq) +{ + QXmppVersionIq response; + response.setType(QXmppIq::Result); + response.setName(clientName()); + response.setVersion(clientVersion()); + response.setOs(clientOs()); + return response; +} /// \endcond diff --git a/src/client/QXmppVersionManager.h b/src/client/QXmppVersionManager.h index c53429aa..80beabf0 100644 --- a/src/client/QXmppVersionManager.h +++ b/src/client/QXmppVersionManager.h @@ -41,6 +41,7 @@ public: /// \cond QStringList discoveryFeatures() const override; bool handleStanza(const QDomElement &element) override; + QXmppVersionIq handleIq(QXmppVersionIq &&iq); /// \endcond Q_SIGNALS: -- cgit v1.2.3