aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppVersionManager.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-10-16 21:57:24 +0200
committerLinus Jahn <lnj@kaidan.im>2022-10-17 16:26:03 +0200
commitd014416ac23f73677f8931161bb2257ec09dced7 (patch)
tree2bd968d261adc9f39d97b411b9fe4b3c1ba4c9f2 /src/client/QXmppVersionManager.cpp
parentb0a7853a956e7d05ef4c0832675d47961fc43125 (diff)
VersionManager: Use new IQ request handling
Diffstat (limited to 'src/client/QXmppVersionManager.cpp')
-rw-r--r--src/client/QXmppVersionManager.cpp31
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