diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-10-05 07:25:51 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-10-05 07:25:51 +0000 |
| commit | 798ae583f51633c5c38b46116194c6f1256f18be (patch) | |
| tree | 14189686c3e4ca4660a891fc382f11926fcf9a65 /src/QXmppClient.cpp | |
| parent | 6ae18fb26e9a70dfaba3d251cc9fa73c78a8b948 (diff) | |
| download | qxmpp-798ae583f51633c5c38b46116194c6f1256f18be.tar.gz | |
use setCapability.. functions to set the caps values
Diffstat (limited to 'src/QXmppClient.cpp')
| -rw-r--r-- | src/QXmppClient.cpp | 18 |
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); } } |
