diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-03-27 08:22:34 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-03-27 08:22:34 +0000 |
| commit | a8da198b500c5c7da490b9ccd7f0d039c5e0f722 (patch) | |
| tree | d40a1892619e79b90a5f7b9ea4cea32e79233e8e /src/server/mod_disco.cpp | |
| parent | 494ea46f004f493b1158b545c679b8e8d80abdec (diff) | |
| download | qxmpp-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.cpp | 129 |
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) - |
