aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppOutgoingClient.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-03 14:37:57 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-03 14:37:57 +0200
commit3d6c785660ffcd982e97e8e80e7ecc3a05e022ef (patch)
treed2e63dae0074e6a03abb5432c8e5cda9f2c57549 /src/client/QXmppOutgoingClient.cpp
parent66af3052ce1754b8617599428b9070c0f2bb02b1 (diff)
add QXmppClient::isAuthenticated
Diffstat (limited to 'src/client/QXmppOutgoingClient.cpp')
-rw-r--r--src/client/QXmppOutgoingClient.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp
index 2fae2736..1298c593 100644
--- a/src/client/QXmppOutgoingClient.cpp
+++ b/src/client/QXmppOutgoingClient.cpp
@@ -84,6 +84,7 @@ public:
bool sessionStarted;
// Authentication
+ bool isAuthenticated;
QString nonSASLAuthId;
QXmppSaslClient *saslClient;
@@ -98,6 +99,7 @@ private:
QXmppOutgoingClientPrivate::QXmppOutgoingClientPrivate(QXmppOutgoingClient *qq)
: redirectPort(0)
, sessionAvailable(false)
+ , isAuthenticated(false)
, saslClient(0)
, q(qq)
{
@@ -219,6 +221,13 @@ void QXmppOutgoingClient::_q_dnsLookupFinished()
}
}
+/// Returns true if authentication has succeeded.
+
+bool QXmppOutgoingClient::isAuthenticated() const
+{
+ return d->isAuthenticated;
+}
+
/// Returns true if the socket is connected and a session has been started.
bool QXmppOutgoingClient::isConnected() const
@@ -229,6 +238,7 @@ bool QXmppOutgoingClient::isConnected() const
void QXmppOutgoingClient::_q_socketDisconnected()
{
debug("Socket disconnected");
+ d->isAuthenticated = false;
if (!d->redirectHost.isEmpty() && d->redirectPort > 0) {
d->connectToHost(d->redirectHost, d->redirectPort);
d->redirectHost = QString();
@@ -477,6 +487,7 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv)
if(nodeRecv.tagName() == "success")
{
debug("Authenticated");
+ d->isAuthenticated = true;
handleStart();
}
else if(nodeRecv.tagName() == "challenge")
@@ -570,6 +581,7 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv)
{
// successful Non-SASL Authentication
debug("Authenticated (Non-SASL)");
+ d->isAuthenticated = true;
// xmpp connection made
d->sessionStarted = true;