aboutsummaryrefslogtreecommitdiff
path: root/src/server/mod_disco.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-03-27 08:22:34 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2012-03-27 08:22:34 +0000
commita8da198b500c5c7da490b9ccd7f0d039c5e0f722 (patch)
treed40a1892619e79b90a5f7b9ea4cea32e79233e8e /src/server/mod_disco.cpp
parent494ea46f004f493b1158b545c679b8e8d80abdec (diff)
downloadqxmpp-a8da198b500c5c7da490b9ccd7f0d039c5e0f722.tar.gz
remove server plugins, they don't belong in a library
Diffstat (limited to 'src/server/mod_disco.cpp')
-rw-r--r--src/server/mod_disco.cpp129
1 files changed, 0 insertions, 129 deletions
diff --git a/src/server/mod_disco.cpp b/src/server/mod_disco.cpp
deleted file mode 100644
index 61caf5dc..00000000
--- a/src/server/mod_disco.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2008-2011 The QXmpp developers
- *
- * Author:
- * Jeremy Lainé
- *
- * Source:
- * http://code.google.com/p/qxmpp
- *
- * This file is a part of QXmpp library.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- */
-
-#include <QCoreApplication>
-#include <QDomElement>
-
-#include "QXmppConstants.h"
-#include "QXmppDiscoveryIq.h"
-#include "QXmppServer.h"
-#include "QXmppServerPlugin.h"
-#include "QXmppStream.h"
-
-#include "mod_disco.h"
-
-QStringList QXmppServerDiscovery::items() const
-{
- return m_discoveryItems;
-}
-
-void QXmppServerDiscovery::setItems(const QStringList &items)
-{
- m_discoveryItems = items;
-}
-
-QStringList QXmppServerDiscovery::discoveryFeatures() const
-{
- return QStringList() << ns_disco_info << ns_disco_items;
-}
-
-QStringList QXmppServerDiscovery::discoveryItems() const
-{
- return m_discoveryItems;
-}
-
-bool QXmppServerDiscovery::handleStanza(const QDomElement &element)
-{
- if (element.attribute("to") != server()->domain())
- return false;
-
- // XEP-0030: Service Discovery
- const QString type = element.attribute("type");
- if (element.tagName() == "iq" && QXmppDiscoveryIq::isDiscoveryIq(element) && type == "get")
- {
- QXmppDiscoveryIq request;
- request.parse(element);
-
- QXmppDiscoveryIq response;
- response.setType(QXmppIq::Result);
- response.setId(request.id());
- response.setFrom(request.to());
- response.setTo(request.from());
- response.setQueryType(request.queryType());
-
- if (request.queryType() == QXmppDiscoveryIq::ItemsQuery)
- {
- QList<QXmppDiscoveryIq::Item> items;
- foreach (QXmppServerExtension *extension, server()->extensions())
- {
- foreach (const QString &jid, extension->discoveryItems())
- {
- QXmppDiscoveryIq::Item item;
- item.setJid(jid);
- items.append(item);
- }
- }
- 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, server()->extensions())
- features += extension->discoveryFeatures();
- response.setFeatures(features);
- }
- server()->sendPacket(response);
- return true;
- }
- return false;
-}
-
-// PLUGIN
-
-class QXmppServerDiscoveryPlugin : public QXmppServerPlugin
-{
-public:
- QXmppServerExtension *create(const QString &key)
- {
- if (key == QLatin1String("ping"))
- return new QXmppServerDiscovery;
- else
- return 0;
- };
-
- QStringList keys() const
- {
- return QStringList() << QLatin1String("ping");
- };
-};
-
-Q_EXPORT_STATIC_PLUGIN2(mod_disco, QXmppServerDiscoveryPlugin)
-