From 7d19f0d81371d86d530d0e7083a04db914ce6745 Mon Sep 17 00:00:00 2001 From: Kevin Smith <git@kismith.co.uk> Date: Tue, 29 Nov 2011 16:35:50 +0000 Subject: Change MainController to not log back in if there's an error during logout Resolves an issue where sending the stream close triggers an error. diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index d485abc..2f9c42e 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -124,6 +124,7 @@ MainController::MainController( adHocManager_ = NULL; quitRequested_ = false; clientInitialized_ = false; + offlineRequested_ = false; timeBeforeNextReconnect_ = -1; dock_ = dock; @@ -366,8 +367,10 @@ void MainController::handleChangeStatusRequest(StatusShow::Type show, const std: presence->setType(Presence::Unavailable); resetPendingReconnects(); myStatusLooksOnline_ = false; + offlineRequested_ = true; } else { + offlineRequested_ = false; presence->setShow(show); } presence->setStatus(statusText); @@ -501,6 +504,12 @@ void MainController::performLoginFromCachedCredentials() { ClientOptions clientOptions; clientOptions.forgetPassword = eagleMode_; clientOptions.useTLS = eagleMode_ ? ClientOptions::RequireTLS : ClientOptions::UseTLSWhenAvailable; + if (clientJID.getDomain() == "wonderland.lit") { + clientOptions.boshURL = URL("http", "192.168.1.185", 5280, "http-bind/"); + } + else if (clientJID.getDomain() == "prosody.doomsong.co.uk") { + clientOptions.boshURL = URL("http", "192.168.1.130", 5280, "http-bind/"); + } client_->connect(clientOptions); } @@ -570,7 +579,9 @@ void MainController::handleDisconnected(const boost::optional<ClientError>& erro if (eagleMode_) { message = str(format(QT_TRANSLATE_NOOP("", "Disconnected from %1%: %2%. To reconnect, Sign Out and provide your password again.")) % jid_.getDomain() % message); } else { - setReconnectTimer(); + if (!offlineRequested_) { + setReconnectTimer(); + } if (lastDisconnectError_) { message = str(format(QT_TRANSLATE_NOOP("", "Reconnect to %1% failed: %2%. Will retry in %3% seconds.")) % jid_.getDomain() % message % boost::lexical_cast<std::string>(timeBeforeNextReconnect_)); lastDisconnectError_->conclude(); diff --git a/Swift/Controllers/MainController.h b/Swift/Controllers/MainController.h index 12028d7..013f8bb 100644 --- a/Swift/Controllers/MainController.h +++ b/Swift/Controllers/MainController.h @@ -164,6 +164,7 @@ namespace Swift { StatusTracker* statusTracker_; bool myStatusLooksOnline_; bool quitRequested_; + bool offlineRequested_; static const int SecondsToWaitBeforeForceQuitting; bool eagleMode_; FileTransferOverview* ftOverview_; -- cgit v0.10.2-6-g49f6