From 2de9fa8c747bb481fd48c35c6b2a116e84d6929c Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Sat, 28 Aug 2010 13:28:37 +0000 Subject: rework QXmppServerExtension initialisation --- src/server/mod_disco.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/server/mod_disco.cpp') diff --git a/src/server/mod_disco.cpp b/src/server/mod_disco.cpp index fe257cf6..961f1f91 100644 --- a/src/server/mod_disco.cpp +++ b/src/server/mod_disco.cpp @@ -21,6 +21,7 @@ * */ +#include #include #include "QXmppConstants.h" @@ -48,7 +49,7 @@ void QXmppServerDiscovery::setDiscoveryItems(const QStringList &items) bool QXmppServerDiscovery::handleStanza(QXmppStream *incoming, const QDomElement &element) { - if (element.attribute("to") != m_server->domain()) + if (element.attribute("to") != server()->domain()) return false; // XEP-0030: Service Discovery @@ -68,7 +69,7 @@ bool QXmppServerDiscovery::handleStanza(QXmppStream *incoming, const QDomElement if (request.queryType() == QXmppDiscoveryIq::ItemsQuery) { QList items; - foreach (QXmppServerExtension *extension, m_server->loadedExtensions()) + foreach (QXmppServerExtension *extension, server()->loadedExtensions()) { foreach (const QString &jid, extension->discoveryItems()) { @@ -79,8 +80,18 @@ bool QXmppServerDiscovery::handleStanza(QXmppStream *incoming, const QDomElement } response.setItems(items); } else { + // identities + QList identities; + QXmppDiscoveryIq::Identity identity; + identity.setCategory("server"); + identity.setType("im"); + identity.setName(qApp->applicationName()); + identities.append(identity); + response.setIdentities(identities); + + // features QStringList features; - foreach (QXmppServerExtension *extension, m_server->loadedExtensions()) + foreach (QXmppServerExtension *extension, server()->loadedExtensions()) features += extension->discoveryFeatures(); response.setFeatures(features); } @@ -90,12 +101,6 @@ bool QXmppServerDiscovery::handleStanza(QXmppStream *incoming, const QDomElement return false; } -bool QXmppServerDiscovery::start(QXmppServer *server) -{ - m_server = server; - return true; -} - // PLUGIN class QXmppServerDiscoveryPlugin : public QXmppServerPlugin -- cgit v1.2.3