From c6ef89965943cd3b30e5cb50eed9f27ed0fad013 Mon Sep 17 00:00:00 2001
From: ck <qt-info@nokia.com>
Date: Thu, 20 May 2010 16:02:58 +0200
Subject: [PATCH] SSH: Add isConnected(), allow redundant calls to start().

---
 src/plugins/coreplugin/ssh/sshconnection.cpp    | 17 +++++++++++++++++
 src/plugins/coreplugin/ssh/sshconnection.h      |  2 ++
 .../qt-maemo/maemoruncontrol.cpp                |  2 +-
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/plugins/coreplugin/ssh/sshconnection.cpp b/src/plugins/coreplugin/ssh/sshconnection.cpp
index 253c949855e..7433bbebd8d 100644
--- a/src/plugins/coreplugin/ssh/sshconnection.cpp
+++ b/src/plugins/coreplugin/ssh/sshconnection.cpp
@@ -115,6 +115,7 @@ public:
         }
     }
 
+    bool isConnected() const { return channel() != -1; }
     bool hasError() const { return !m_error.isEmpty(); }
     QString error() const { return m_error; }
     int channel() const { return m_channel; }
@@ -255,6 +256,9 @@ InteractiveSshConnection::~InteractiveSshConnection()
 
 bool InteractiveSshConnection::start()
 {
+    if (isConnected())
+        return true;
+
     if (!d->conn.start(true, wakeupReader, d->outputReader))
         return false;
 
@@ -297,6 +301,11 @@ InteractiveSshConnection::Ptr InteractiveSshConnection::create(const SshServerIn
     return Ptr(new InteractiveSshConnection(server));
 }
 
+bool InteractiveSshConnection::isConnected() const
+{
+    return d->conn.isConnected();
+}
+
 bool InteractiveSshConnection::hasError() const
 {
     return d->conn.hasError();
@@ -335,11 +344,14 @@ SftpConnection::~SftpConnection()
 
 bool SftpConnection::start()
 {
+    if (isConnected())
+        return true;
     if (!d->conn.start(false, 0, 0))
         return false;
     if (!d->conn.ssh->initSftp(d->sftp, d->conn.channel())
         || !d->sftp.setTimeout(d->conn.server().timeout)) {
         d->conn.setError(tr("Error setting up SFTP subsystem"), true);
+        quit();
         return false;
     }
     return true;
@@ -456,6 +468,11 @@ void SftpConnection::quit()
     d->conn.quit();
 }
 
+bool SftpConnection::isConnected() const
+{
+    return d->conn.isConnected();
+}
+
 bool SftpConnection::hasError() const
 {
     return d->conn.hasError();
diff --git a/src/plugins/coreplugin/ssh/sshconnection.h b/src/plugins/coreplugin/ssh/sshconnection.h
index cc233847016..8c7b59f594b 100644
--- a/src/plugins/coreplugin/ssh/sshconnection.h
+++ b/src/plugins/coreplugin/ssh/sshconnection.h
@@ -81,6 +81,7 @@ public:
 
     bool start();
     void quit();
+    bool isConnected() const;
     bool sendInput(const QByteArray &input); // Should normally end in newline.
     QByteArray waitForRemoteOutput(int msecs = -1);
     bool hasError() const;
@@ -124,6 +125,7 @@ public:
     static Ptr create(const SshServerInfo &server);
     bool start();
     void quit();
+    bool isConnected() const;
     bool hasError() const;
     QString error() const;
     bool upload(const QString &localFilePath, const QByteArray &remoteFilePath);
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
index 329d185b3f1..44b1beaa174 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
@@ -110,7 +110,7 @@ void AbstractMaemoRunControl::handleInitialCleanupFinished()
         emit appendMessage(this, tr("Initial cleanup canceled by user."), false);
         emit finished();
     } else if (m_initialCleaner->hasError()) {
-        handleError(tr("Error running initial cleanup: %1.")
+        handleError(tr("Error running initial cleanup: %1")
                     .arg(m_initialCleaner->error()));
         emit finished();
     } else {
-- 
GitLab