diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-11 07:56:40 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-11 07:56:40 +0000 |
| commit | 629b537d6b597f116f8f385859384bb59c1b5634 (patch) | |
| tree | 2c14f27f578c65e7d79e94a95ccd4c11c302c14d /source | |
| parent | e386059f004474d4ffa32a9573a3f36dbec4439b (diff) | |
| download | qxmpp-629b537d6b597f116f8f385859384bb59c1b5634.tar.gz | |
integrate support for XEP-0030 : Service Discovery
Diffstat (limited to 'source')
| -rw-r--r-- | source/QXmppClient.cpp | 5 | ||||
| -rw-r--r-- | source/QXmppClient.h | 4 | ||||
| -rw-r--r-- | source/QXmppStream.cpp | 8 | ||||
| -rw-r--r-- | source/QXmppStream.h | 3 |
4 files changed, 20 insertions, 0 deletions
diff --git a/source/QXmppClient.cpp b/source/QXmppClient.cpp index 9794ea24..12f58364 100644 --- a/source/QXmppClient.cpp +++ b/source/QXmppClient.cpp @@ -53,6 +53,11 @@ QXmppClient::QXmppClient(QObject *parent) check = connect(m_stream, SIGNAL(iqReceived(const QXmppIq&)), this, SIGNAL(iqReceived(const QXmppIq&))); + Q_ASSERT(check); + + check = connect(m_stream, SIGNAL(discoveryIqReceived(const QXmppDiscoveryIq&)), this, + SIGNAL(discoveryIqReceived(const QXmppDiscoveryIq&))); + Q_ASSERT(check); check = connect(m_stream, SIGNAL(disconnected()), this, SIGNAL(disconnected())); diff --git a/source/QXmppClient.h b/source/QXmppClient.h index 52139fe9..1692e6fb 100644 --- a/source/QXmppClient.h +++ b/source/QXmppClient.h @@ -61,6 +61,7 @@ class QXmppRemoteMethod; class QXmppIbbTransferManager; class QXmppRemoteMethodResult; class QXmppArchiveManager; +class QXmppDiscoveryIq; class QXmppClient : public QObject { @@ -166,6 +167,9 @@ signals: /// management, setting-getting vCards etc is done using iq stanzas. void iqReceived(const QXmppIq&); + /// Notifies that an XMPP service discovery iq stanza is received. + void discoveryIqReceived(const QXmppDiscoveryIq&); + public: QAbstractSocket::SocketError getSocketError(); diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp index 1954b6bc..c0bc03d3 100644 --- a/source/QXmppStream.cpp +++ b/source/QXmppStream.cpp @@ -42,6 +42,7 @@ #include "QXmppRpcIq.h" #include "QXmppIbbTransferManager.h" #include "QXmppArchiveIq.h" +#include "QXmppDiscoveryIq.h" #include "QXmppPingIq.h" #include "QXmppLogger.h" #include "QXmppUtils.h" @@ -546,6 +547,13 @@ void QXmppStream::parser(const QByteArray& data) qxmppFeatures.setFrom(to); sendPacket(qxmppFeatures); } + else if(QXmppDiscoveryIq::isDiscoveryIq(nodeRecv)) + { + QXmppDiscoveryIq discoIq; + discoIq.parse(nodeRecv); + emit discoveryIqReceived(discoIq); + iqPacket = discoIq; + } else if(id == m_nonSASLAuthId && type == "result") { // successful Non-SASL Authentication diff --git a/source/QXmppStream.h b/source/QXmppStream.h index 469b51e6..a9242f7d 100644 --- a/source/QXmppStream.h +++ b/source/QXmppStream.h @@ -49,6 +49,7 @@ class QXmppRpcErrorIq; class QXmppArchiveChatIq; class QXmppArchiveListIq; class QXmppArchivePrefIq; +class QXmppDiscoveryIq; class QXmppStream : public QObject { @@ -98,6 +99,8 @@ signals: void archiveListIqReceived(const QXmppArchiveListIq&); void archivePrefIqReceived(const QXmppArchivePrefIq&); + void discoveryIqReceived(const QXmppDiscoveryIq&); + private slots: void socketHostFound(); void socketReadReady(); |
