From a8da198b500c5c7da490b9ccd7f0d039c5e0f722 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Tue, 27 Mar 2012 08:22:34 +0000 Subject: remove server plugins, they don't belong in a library --- src/server/mod_disco.cpp | 129 ----------------------------------------------- 1 file changed, 129 deletions(-) delete mode 100644 src/server/mod_disco.cpp (limited to 'src/server/mod_disco.cpp') 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 -#include - -#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 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 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) - -- cgit v1.2.3