• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision6586 (tree)
Time2017-02-12 20:30:46
Author(del#24082)

Log Message

チケット #36950 SSH SCPでファイルエラー時でもファイルが生成される

ファイル受信に失敗した場合、ローカルファイルの残骸を削除するようにした。

Change Summary

Incremental Difference

--- trunk/ttssh2/ttxssh/ssh.c (revision 6585)
+++ trunk/ttssh2/ttxssh/ssh.c (revision 6586)
@@ -273,6 +273,7 @@
273273 static void ssh2_channel_delete(Channel_t *c)
274274 {
275275 bufchain_t *ch, *ptr;
276+ enum scp_state prev_state;
276277
277278 ch = c->bufchain;
278279 while (ch) {
@@ -284,6 +285,9 @@
284285 }
285286
286287 if (c->type == TYPE_SCP) {
288+ // SCP処理の最後の状態を保存する。
289+ prev_state = c->scp.state;
290+
287291 c->scp.state = SCP_CLOSING;
288292 if (c->scp.localfp != NULL) {
289293 fclose(c->scp.localfp);
@@ -294,6 +298,11 @@
294298 filetime.modtime = c->scp.filemtime;
295299 _utime(c->scp.localfilefull, &filetime);
296300 }
301+
302+ // SCP受信が成功していなければ、ローカルに作ったファイルの残骸を削除する。
303+ // (2017.2.12 yutaka)
304+ if (prev_state != SCP_CLOSING)
305+ remove(c->scp.localfilefull);
297306 }
298307 }
299308 if (c->scp.progress_window != NULL) {
Show on old repository browser