diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-10-16 21:57:24 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-10-17 16:26:03 +0200 |
| commit | d014416ac23f73677f8931161bb2257ec09dced7 (patch) | |
| tree | 2bd968d261adc9f39d97b411b9fe4b3c1ba4c9f2 /src/client/QXmppVersionManager.cpp | |
| parent | b0a7853a956e7d05ef4c0832675d47961fc43125 (diff) | |
VersionManager: Use new IQ request handling
Diffstat (limited to 'src/client/QXmppVersionManager.cpp')
| -rw-r--r-- | src/client/QXmppVersionManager.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
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 <QCoreApplication> #include <QDomElement> #include <QSysInfo> +using namespace QXmpp; + class QXmppVersionManagerPrivate { public: @@ -119,23 +122,15 @@ QStringList QXmppVersionManager::discoveryFeatures() const bool QXmppVersionManager::handleStanza(const QDomElement &element) { + if (QXmpp::handleIqRequests<QXmppVersionIq>(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 |
