diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-28 01:01:00 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-28 01:01:00 +0000 |
| commit | 07d0e72d6e7f9fa73d49c2f779206abf79f4a5a7 (patch) | |
| tree | e20c174dedb6ae53dffdc30bb7311b8f074bae3a /src | |
| parent | 60756b31285d65add73efaad39a44617ecce76db (diff) | |
| download | qxmpp-07d0e72d6e7f9fa73d49c2f779206abf79f4a5a7.tar.gz | |
Improve Service Discovery
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppServerExtension.cpp | 11 | ||||
| -rw-r--r-- | src/QXmppServerExtension.h | 1 | ||||
| -rw-r--r-- | src/server/mod_disco.cpp | 11 |
3 files changed, 18 insertions, 5 deletions
diff --git a/src/QXmppServerExtension.cpp b/src/QXmppServerExtension.cpp index 120ce6b7..76638397 100644 --- a/src/QXmppServerExtension.cpp +++ b/src/QXmppServerExtension.cpp @@ -26,7 +26,7 @@ #include "QXmppServerExtension.h" -/// Returns the features this extension implements. +/// Returns the discovery features to add to the server. /// QStringList QXmppServerExtension::discoveryFeatures() const @@ -34,6 +34,15 @@ QStringList QXmppServerExtension::discoveryFeatures() const return QStringList(); } +/// Returns the discovery items to add to the server. +/// + +QStringList QXmppServerExtension::discoveryItems() const +{ + return QStringList(); +} + + /// Returns the extension's name. /// diff --git a/src/QXmppServerExtension.h b/src/QXmppServerExtension.h index a35873a9..0b1e6e56 100644 --- a/src/QXmppServerExtension.h +++ b/src/QXmppServerExtension.h @@ -44,6 +44,7 @@ public: QString extensionName() const; virtual QStringList discoveryFeatures() const; + virtual QStringList discoveryItems() const; virtual bool handleStanza(QXmppStream *stream, const QDomElement &stanza); virtual QStringList presenceSubscribers(const QString &jid); virtual bool start(QXmppServer *server); diff --git a/src/server/mod_disco.cpp b/src/server/mod_disco.cpp index c6377f99..fe257cf6 100644 --- a/src/server/mod_disco.cpp +++ b/src/server/mod_disco.cpp @@ -68,11 +68,14 @@ bool QXmppServerDiscovery::handleStanza(QXmppStream *incoming, const QDomElement if (request.queryType() == QXmppDiscoveryIq::ItemsQuery) { QList<QXmppDiscoveryIq::Item> items; - foreach (const QString &jid, m_discoveryItems) + foreach (QXmppServerExtension *extension, m_server->loadedExtensions()) { - QXmppDiscoveryIq::Item item; - item.setJid(jid); - items.append(item); + foreach (const QString &jid, extension->discoveryItems()) + { + QXmppDiscoveryIq::Item item; + item.setJid(jid); + items.append(item); + } } response.setItems(items); } else { |
