diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-10-30 17:46:24 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-10-30 17:51:32 (GMT) |
commit | ba333999576d89f3340c271b2a3331d6a3e64ac7 (patch) | |
tree | 7f2d0dd20d6d6a302a26c904468a90c22150b481 /Swiften/Client | |
parent | 59be74ec6fc7bc495f2a261b8f274b8555aee306 (diff) | |
download | swift-contrib-ba333999576d89f3340c271b2a3331d6a3e64ac7.zip swift-contrib-ba333999576d89f3340c271b2a3331d6a3e64ac7.tar.bz2 |
Disconnect client cleanly before quitting.
Resolves: #671, #420
Diffstat (limited to 'Swiften/Client')
-rw-r--r-- | Swiften/Client/CoreClient.cpp | 10 | ||||
-rw-r--r-- | Swiften/Client/CoreClient.h | 7 |
2 files changed, 12 insertions, 5 deletions
diff --git a/Swiften/Client/CoreClient.cpp b/Swiften/Client/CoreClient.cpp index 9511dfb..d9b21bc 100644 --- a/Swiften/Client/CoreClient.cpp +++ b/Swiften/Client/CoreClient.cpp @@ -62,6 +62,7 @@ void CoreClient::connect(const JID& jid) { } void CoreClient::connect(const String& host) { + disconnectRequested_ = false; assert(!connector_); connector_ = Connector::create(host, &resolver_, connectionFactory_, timerFactory_); connector_->onConnectFinished.connect(boost::bind(&CoreClient::handleConnectorFinished, this, _1)); @@ -105,12 +106,7 @@ void CoreClient::disconnect() { } else if (connector_) { connector_->stop(); - assert(!session_); } - assert(!session_); - assert(!sessionStream_); - assert(!connector_); - disconnectRequested_ = false; } void CoreClient::setCertificate(const String& certificate) { @@ -214,4 +210,8 @@ void CoreClient::sendPresence(boost::shared_ptr<Presence> presence) { stanzaChannel_->sendPresence(presence); } +bool CoreClient::isActive() const { + return session_ || connector_; +} + } diff --git a/Swiften/Client/CoreClient.h b/Swiften/Client/CoreClient.h index e9e81ec..2b7113f 100644 --- a/Swiften/Client/CoreClient.h +++ b/Swiften/Client/CoreClient.h @@ -96,6 +96,13 @@ namespace Swift { } /** + * Checks whether the client is active. + * + * A client is active when it is connected or connecting to the server. + */ + bool isActive() const; + + /** * Returns the JID of the client. * After the session was initialized, this returns the bound JID. */ |