diff options
author | Christian Kandeler <[email protected]> | 2012-09-07 13:58:29 +0200 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2012-09-07 14:25:13 +0200 |
commit | 93e3c3f36fbbbcff4df9a98fe3a667a61023af6d (patch) | |
tree | 1570a98d295d7ef12fc2c1c6091fab48a744d881 /src/libs/ssh/sftpchannel.cpp | |
parent | 95824dc29859724f902a7af64cde7efab2b1b5e3 (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.cpp | 2 |
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(); |