aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/ssh/sftpchannel.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2012-09-07 13:58:29 +0200
committerChristian Kandeler <[email protected]>2012-09-07 14:25:13 +0200
commit93e3c3f36fbbbcff4df9a98fe3a667a61023af6d (patch)
tree1570a98d295d7ef12fc2c1c6091fab48a744d881 /src/libs/ssh/sftpchannel.cpp
parent95824dc29859724f902a7af64cde7efab2b1b5e3 (diff)
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 <[email protected]>
Diffstat (limited to 'src/libs/ssh/sftpchannel.cpp')
-rw-r--r--src/libs/ssh/sftpchannel.cpp2
1 files changed, 2 insertions, 0 deletions
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();