aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppOutgoingClient.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-23 07:55:15 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-23 07:55:15 +0000
commitc02547eff8d35d8cbee7869329820dc582cc3949 (patch)
treed260690c39cd5721e42a5fb63221c3253defd7d9 /src/QXmppOutgoingClient.cpp
parentccb60b7970adeb4d11a02d41cecb607e331ef52e (diff)
downloadqxmpp-c02547eff8d35d8cbee7869329820dc582cc3949.tar.gz
add isConnected() methods to all streams
Diffstat (limited to 'src/QXmppOutgoingClient.cpp')
-rw-r--r--src/QXmppOutgoingClient.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/QXmppOutgoingClient.cpp b/src/QXmppOutgoingClient.cpp
index f9f939b2..145f5b1d 100644
--- a/src/QXmppOutgoingClient.cpp
+++ b/src/QXmppOutgoingClient.cpp
@@ -81,6 +81,7 @@ public:
QString bindId;
QString sessionId;
bool sessionAvailable;
+ bool sessionStarted;
QString streamId;
QString streamFrom;
QString streamVersion;
@@ -156,6 +157,14 @@ void QXmppOutgoingClient::connectToHost()
configuration().port());
}
+/// Returns true if the socket is connected and a session has been started.
+///
+
+bool QXmppOutgoingClient::isConnected() const
+{
+ return QXmppStream::isConnected() && d->sessionStarted;
+}
+
void QXmppOutgoingClient::socketSslErrors(const QList<QSslError> & error)
{
warning("SSL errors");
@@ -177,6 +186,7 @@ void QXmppOutgoingClient::handleStart()
{
// reset authentication step
d->authStep = 0;
+ d->sessionStarted = false;
// start stream
QByteArray data = "<?xml version='1.0'?><stream:stream to='";
@@ -387,6 +397,7 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv)
// process SessionIq
// xmpp connection made
+ d->sessionStarted = true;
emit connected();
}
else if(QXmppBind::isBind(nodeRecv) && id == d->bindId)