From c02547eff8d35d8cbee7869329820dc582cc3949 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 23 Aug 2010 07:55:15 +0000 Subject: add isConnected() methods to all streams --- src/QXmppIncomingClient.cpp | 8 ++++++-- src/QXmppIncomingServer.cpp | 10 ++++++++++ src/QXmppIncomingServer.h | 1 + src/QXmppOutgoingClient.cpp | 11 +++++++++++ src/QXmppOutgoingClient.h | 1 + src/QXmppOutgoingServer.cpp | 4 ++-- 6 files changed, 31 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/QXmppIncomingClient.cpp b/src/QXmppIncomingClient.cpp index dcfe26f0..565a17c9 100644 --- a/src/QXmppIncomingClient.cpp +++ b/src/QXmppIncomingClient.cpp @@ -71,6 +71,7 @@ QXmppIncomingClient::QXmppIncomingClient(QSslSocket *socket, const QString &doma bool check = connect(d->idleTimer, SIGNAL(timeout()), this, SLOT(slotTimeout())); Q_ASSERT(check); + Q_UNUSED(check); } /// Destroys the current stream. @@ -81,12 +82,15 @@ QXmppIncomingClient::~QXmppIncomingClient() delete d; } -/// Returns true if the client is authenticated and a resource is bound. +/// Returns true if the socket is connected, the client is authenticated +/// and a resource is bound. /// bool QXmppIncomingClient::isConnected() const { - return !d->username.isEmpty() && !d->resource.isEmpty(); + return QXmppStream::isConnected() && + !d->username.isEmpty() && + !d->resource.isEmpty(); } /// Returns the client's JID. diff --git a/src/QXmppIncomingServer.cpp b/src/QXmppIncomingServer.cpp index 9fe7ee1e..32f83120 100644 --- a/src/QXmppIncomingServer.cpp +++ b/src/QXmppIncomingServer.cpp @@ -135,6 +135,7 @@ void QXmppIncomingServer::handleStanza(const QDomElement &stanza) bool check = connect(stream, SIGNAL(dialbackResponseReceived(QXmppDialback)), this, SLOT(slotDialbackResponseReceived(QXmppDialback))); Q_ASSERT(check); + Q_UNUSED(check); stream->setVerify(d->localStreamId, request.key()); stream->connectToHost(); } @@ -152,6 +153,15 @@ void QXmppIncomingServer::handleStanza(const QDomElement &stanza) } } +/// Returns true if the socket is connected and the remote server is +/// authenticated. +/// + +bool QXmppIncomingServer::isConnected() const +{ + return QXmppStream::isConnected() && d->authenticated; +} + /// Handles a dialback response received from the authority server. /// /// \param response diff --git a/src/QXmppIncomingServer.h b/src/QXmppIncomingServer.h index e82ba9d7..5041c074 100644 --- a/src/QXmppIncomingServer.h +++ b/src/QXmppIncomingServer.h @@ -42,6 +42,7 @@ public: QXmppIncomingServer(QSslSocket *socket, const QString &domain, QObject *parent); ~QXmppIncomingServer(); + bool isConnected() const; QString localStreamId() const; signals: 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 & error) { warning("SSL errors"); @@ -177,6 +186,7 @@ void QXmppOutgoingClient::handleStart() { // reset authentication step d->authStep = 0; + d->sessionStarted = false; // start stream QByteArray data = "