aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-01-20 10:24:48 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-01-20 10:24:48 +0000
commit899c87448fa1b8fe57a64e0163e54d249dd2fd2d (patch)
treebf3c8442cec78b891b92603b68eda2ffdc3821e5 /src
parent6a284845ca8a8ad22130b43d533b43d2333d47e3 (diff)
downloadqxmpp-899c87448fa1b8fe57a64e0163e54d249dd2fd2d.tar.gz
make it possible to change the client's capabilities node
Diffstat (limited to 'src')
-rw-r--r--src/QXmppClient.cpp2
-rw-r--r--src/QXmppConstants.cpp2
-rw-r--r--src/QXmppConstants.h2
-rw-r--r--src/QXmppDiscoveryManager.cpp27
-rw-r--r--src/QXmppDiscoveryManager.h14
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;