aboutsummaryrefslogtreecommitdiff
path: root/src/server/mod_disco.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/mod_disco.cpp')
-rw-r--r--src/server/mod_disco.cpp23
1 files changed, 14 insertions, 9 deletions
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 <QCoreApplication>
#include <QDomElement>
#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<QXmppDiscoveryIq::Item> 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<QXmppDiscoveryIq::Identity> 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