From 3d1bfc3c4c221122b7fb3f81cd4ebf3d6f81dedf Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Tue, 7 Sep 2010 14:35:16 +0000 Subject: move the Version Result code to the versionManager class --- src/QXmppOutgoingClient.cpp | 16 +--------------- src/QXmppVersionManager.cpp | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/QXmppOutgoingClient.cpp b/src/QXmppOutgoingClient.cpp index 9c3f55ec..f52f4309 100644 --- a/src/QXmppOutgoingClient.cpp +++ b/src/QXmppOutgoingClient.cpp @@ -591,21 +591,7 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv) { QXmppVersionIq versionIq; versionIq.parse(nodeRecv); - - if (versionIq.type() == QXmppIq::Get) - { - // respond to query - QXmppVersionIq responseIq; - responseIq.setType(QXmppIq::Result); - responseIq.setId(versionIq.id()); - responseIq.setTo(versionIq.from()); - responseIq.setName(qApp->applicationName()); - responseIq.setVersion(qApp->applicationVersion()); - sendPacket(responseIq); - } else { - emit versionIqReceived(versionIq); - } - + emit versionIqReceived(versionIq); } // XEP-0095: Stream Initiation else if(QXmppStreamInitiationIq::isStreamInitiationIq(nodeRecv)) diff --git a/src/QXmppVersionManager.cpp b/src/QXmppVersionManager.cpp index fe546ad4..9f746e82 100644 --- a/src/QXmppVersionManager.cpp +++ b/src/QXmppVersionManager.cpp @@ -23,6 +23,8 @@ #include "QXmppVersionManager.h" #include "QXmppOutgoingClient.h" +#include "QXmppVersionIq.h" +#include QXmppVersionManager::QXmppVersionManager(QXmppOutgoingClient* stream, QObject *parent) : QObject(parent), @@ -34,7 +36,23 @@ QXmppVersionManager::QXmppVersionManager(QXmppOutgoingClient* stream, QObject *p Q_UNUSED(check); } -void QXmppVersionManager::versionIqReceived(const QXmppVersionIq& verIq) +void QXmppVersionManager::versionIqReceived(const QXmppVersionIq& versionIq) { - emit versionReceived(verIq); + if(versionIq.type() == QXmppIq::Get) + { + // respond to query + QXmppVersionIq responseIq; + responseIq.setType(QXmppIq::Result); + responseIq.setId(versionIq.id()); + responseIq.setTo(versionIq.from()); + QString name = qApp->applicationName(); + if(name.isEmpty()) + name = "Based on QXmpp"; + responseIq.setName(name); + // TODO set OS aswell + responseIq.setVersion(qApp->applicationVersion()); + m_stream->sendPacket(responseIq); + } + + emit versionReceived(versionIq); } -- cgit v1.2.3