aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppClient.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-05 07:25:51 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-05 07:25:51 +0000
commit798ae583f51633c5c38b46116194c6f1256f18be (patch)
tree14189686c3e4ca4660a891fc382f11926fcf9a65 /src/QXmppClient.cpp
parent6ae18fb26e9a70dfaba3d251cc9fa73c78a8b948 (diff)
downloadqxmpp-798ae583f51633c5c38b46116194c6f1256f18be.tar.gz
use setCapability.. functions to set the caps values
Diffstat (limited to 'src/QXmppClient.cpp')
-rw-r--r--src/QXmppClient.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp
index ed126496..7deeb323 100644
--- a/src/QXmppClient.cpp
+++ b/src/QXmppClient.cpp
@@ -66,6 +66,7 @@ public:
QHash<QString,QXmppInvokable*> interfaces;
+ void addProperCapability(QXmppPresence& presence);
QXmppElementList presenceExtensions() const;
QXmppClient *client;
@@ -97,6 +98,17 @@ QXmppElementList QXmppClientPrivate::presenceExtensions() const
return extensions;
}
+void QXmppClientPrivate::addProperCapability(QXmppPresence& presence)
+{
+ QXmppDiscoveryManager* ext = client->findExtension<QXmppDiscoveryManager>();
+ if(ext)
+ {
+ presence.setCapabilityHash("sha-1");
+ presence.setCapabilityNode(QString(capabilities_node));
+ presence.setCapabilityVer(ext->capabilities().verificationString().toBase64());
+ }
+}
+
/// \mainpage
///
/// QXmpp is a cross-platform C++ XMPP client library based on the Qt
@@ -146,7 +158,7 @@ QXmppClient::QXmppClient(QObject *parent)
d(new QXmppClientPrivate(this))
{
d->stream = new QXmppOutgoingClient(this);
- d->clientPresence.setExtensions(d->presenceExtensions());
+ d->addProperCapability(d->clientPresence);
bool check = connect(d->stream, SIGNAL(elementReceived(const QDomElement&, bool&)),
this, SLOT(slotElementReceived(const QDomElement&, bool&)));
@@ -320,7 +332,7 @@ void QXmppClient::connectToServer(const QXmppConfiguration& config,
}
d->clientPresence = initialPresence;
- d->clientPresence.setExtensions(d->presenceExtensions());
+ d->addProperCapability(d->clientPresence);
d->stream->connectToHost();
}
@@ -518,7 +530,7 @@ void QXmppClient::setClientPresence(const QXmppPresence& presence)
else
{
d->clientPresence = presence;
- d->clientPresence.setExtensions(d->presenceExtensions());
+ d->addProperCapability(d->clientPresence);
sendPacket(d->clientPresence);
}
}