diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-01-20 10:24:48 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-01-20 10:24:48 +0000 |
| commit | 899c87448fa1b8fe57a64e0163e54d249dd2fd2d (patch) | |
| tree | bf3c8442cec78b891b92603b68eda2ffdc3821e5 /src | |
| parent | 6a284845ca8a8ad22130b43d533b43d2333d47e3 (diff) | |
| download | qxmpp-899c87448fa1b8fe57a64e0163e54d249dd2fd2d.tar.gz | |
make it possible to change the client's capabilities node
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppClient.cpp | 2 | ||||
| -rw-r--r-- | src/QXmppConstants.cpp | 2 | ||||
| -rw-r--r-- | src/QXmppConstants.h | 2 | ||||
| -rw-r--r-- | src/QXmppDiscoveryManager.cpp | 27 | ||||
| -rw-r--r-- | src/QXmppDiscoveryManager.h | 14 |
5 files changed, 34 insertions, 13 deletions
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp index fddd3236..6b106fb5 100644 --- a/src/QXmppClient.cpp +++ b/src/QXmppClient.cpp @@ -74,7 +74,7 @@ void QXmppClientPrivate::addProperCapability(QXmppPresence& presence) if(ext) { presence.setCapabilityHash("sha-1"); - presence.setCapabilityNode(QString(capabilities_node)); + presence.setCapabilityNode(ext->clientCapabilitiesNode()); presence.setCapabilityVer(ext->capabilities().verificationString()); } } diff --git a/src/QXmppConstants.cpp b/src/QXmppConstants.cpp index b89f637f..c6231c1d 100644 --- a/src/QXmppConstants.cpp +++ b/src/QXmppConstants.cpp @@ -24,8 +24,6 @@ #include "QXmppConstants.h" -const char* capabilities_node = "http://code.google.com/p/qxmpp"; - const char* ns_stream = "http://etherx.jabber.org/streams"; const char* ns_client = "jabber:client"; const char* ns_server = "jabber:server"; diff --git a/src/QXmppConstants.h b/src/QXmppConstants.h index 22b48847..a5166636 100644 --- a/src/QXmppConstants.h +++ b/src/QXmppConstants.h @@ -25,8 +25,6 @@ #ifndef QXMPPCONSTANTS_H #define QXMPPCONSTANTS_H -extern const char* capabilities_node; - extern const char* ns_stream; extern const char* ns_client; extern const char* ns_server; diff --git a/src/QXmppDiscoveryManager.cpp b/src/QXmppDiscoveryManager.cpp index a9afe89d..24cb2aa6 100644 --- a/src/QXmppDiscoveryManager.cpp +++ b/src/QXmppDiscoveryManager.cpp @@ -33,6 +33,7 @@ #include "QXmppGlobal.h" QXmppDiscoveryManager::QXmppDiscoveryManager() : QXmppClientExtension(), + m_clientCapabilitiesNode("http://code.google.com/p/qxmpp"), m_clientCategory("client"), m_clientType("pc"), m_clientName(QString("%1 %2").arg(qApp->applicationName(), qApp->applicationVersion())) @@ -52,7 +53,7 @@ bool QXmppDiscoveryManager::handleStanza(const QDomElement &element) if(receivedIq.type() == QXmppIq::Get && receivedIq.queryType() == QXmppDiscoveryIq::InfoQuery && - (receivedIq.queryNode().isEmpty() || receivedIq.queryNode().startsWith(QString(capabilities_node)))) + (receivedIq.queryNode().isEmpty() || receivedIq.queryNode().startsWith(m_clientCapabilitiesNode))) { // respond to query QXmppDiscoveryIq qxmppFeatures = capabilities(); @@ -154,6 +155,15 @@ QXmppDiscoveryIq QXmppDiscoveryManager::capabilities() return iq; } +/// Sets the capabilities node of the local XMPP client. +/// +/// \param node + +void QXmppDiscoveryManager::setClientCapabilitiesNode(const QString &node) +{ + m_clientCapabilitiesNode = node; +} + /// Sets the category of the local XMPP client. /// /// You can find a list of valid categories at: @@ -187,11 +197,20 @@ void QXmppDiscoveryManager::setClientName(const QString& name) m_clientName = name; } +/// Returns the capabilities node of the local XMPP client. +/// +/// By default this is "http://code.google.com/p/qxmpp". + +QString QXmppDiscoveryManager::clientCapabilitiesNode() const +{ + return m_clientCapabilitiesNode; +} + /// Returns the category of the local XMPP client. /// /// By default this is "client". -QString QXmppDiscoveryManager::clientCategory() +QString QXmppDiscoveryManager::clientCategory() const { return m_clientCategory; } @@ -200,7 +219,7 @@ QString QXmppDiscoveryManager::clientCategory() /// /// By default this is "pc". -QString QXmppDiscoveryManager::clientType() +QString QXmppDiscoveryManager::clientType() const { return m_clientType; } @@ -209,7 +228,7 @@ QString QXmppDiscoveryManager::clientType() /// /// By default this is "Based on QXmpp x.y.z". -QString QXmppDiscoveryManager::clientName() +QString QXmppDiscoveryManager::clientName() const { return m_clientName; } diff --git a/src/QXmppDiscoveryManager.h b/src/QXmppDiscoveryManager.h index 6460fd7d..18e65bb9 100644 --- a/src/QXmppDiscoveryManager.h +++ b/src/QXmppDiscoveryManager.h @@ -43,13 +43,18 @@ public: QString requestInfo(const QString& jid, const QString& node = ""); QString requestItems(const QString& jid, const QString& node = ""); + QString clientCapabilitiesNode() const; + void setClientCapabilitiesNode(const QString&); + // http://xmpp.org/registrar/disco-categories.html#client + QString clientCategory() const; void setClientCategory(const QString&); - void setClientType(const QString&); + void setClientName(const QString&); - QString clientCategory(); - QString clientType(); - QString clientName(); + QString clientName() const; + + QString clientType() const; + void setClientType(const QString&); /// \cond QStringList discoveryFeatures() const; @@ -65,6 +70,7 @@ signals: void itemsReceived(const QXmppDiscoveryIq&); private: + QString m_clientCapabilitiesNode; QString m_clientCategory; QString m_clientType; QString m_clientName; |
