From 93e3c3f36fbbbcff4df9a98fe3a667a61023af6d Mon Sep 17 00:00:00 2001
From: Christian Kandeler <christian.kandeler@nokia.com>
Date: Fri, 7 Sep 2012 13:58:29 +0200
Subject: [PATCH] SSH: Emit finished() for all running SFTP jobs when the
 server closes.

Otherwise a crashing SFTP server can leave the client hanging.

Change-Id: Ie96d7a9797074ddea3b50a1788b8ef7cd4bcd5bf
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
---
 src/libs/ssh/sftpchannel.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/libs/ssh/sftpchannel.cpp b/src/libs/ssh/sftpchannel.cpp
index c1e0206e09c..152afaa4535 100644
--- a/src/libs/ssh/sftpchannel.cpp
+++ b/src/libs/ssh/sftpchannel.cpp
@@ -832,6 +832,8 @@ SftpChannelPrivate::JobMap::Iterator SftpChannelPrivate::lookupJob(SftpJobId id)
 
 void SftpChannelPrivate::closeHook()
 {
+    for (JobMap::ConstIterator it = m_jobs.constBegin(); it != m_jobs.constEnd(); ++it)
+        emit finished(it.key(), tr("SFTP channel closed unexpectedly."));
     m_jobs.clear();
     m_incomingData.clear();
     m_incomingPacket.clear();
-- 
GitLab