From 6578b5872440f63ed8a4903bae83e46e936d469e Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
Date: Mon, 12 Apr 2010 14:32:25 +0000
Subject: Auto-reconnect after disconnection


diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp
index e20e9f8..33928f8 100644
--- a/Swift/Controllers/MainController.cpp
+++ b/Swift/Controllers/MainController.cpp
@@ -234,7 +234,7 @@ void MainController::handleEventQueueLengthChange(int count) {
 
 void MainController::reconnectAfterError() {
 	performLoginFromCachedCredentials();
-	sendPresence(queuedPresence_);
+	//sendPresence(queuedPresence_);
 }
 
 void MainController::handleChangeStatusRequest(StatusShow::Type show, const String &statusText) {
@@ -353,13 +353,15 @@ void MainController::handleError(const ClientError& error) {
 		signOut();
 		loginWindow_->setMessage(message);
 	} else {
-		message = "Disconnected from " + jid_.getDomain() + ": ";
-		lastDisconnectError_ = boost::shared_ptr<ErrorEvent>(new ErrorEvent(JID(jid_.getDomain()), message));
-		eventController_->handleIncomingEvent(lastDisconnectError_);
+		if (!lastDisconnectError_) {
+			message = "Disconnected from " + jid_.getDomain() + ": ";
+			lastDisconnectError_ = boost::shared_ptr<ErrorEvent>(new ErrorEvent(JID(jid_.getDomain()), message));
+			eventController_->handleIncomingEvent(lastDisconnectError_);
+		}
 	}
 	logout();
 	if (rosterController_) {
-		//reconnectAfterError();
+		reconnectAfterError();
 	}
 }
 
-- 
cgit v0.10.2-6-g49f6