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