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

svnno****@sourc***** svnno****@sourc*****
2017年 2月 12日 (日) 20:30:46 JST


Revision: 6586
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6586
Author:   yutakapon
Date:     2017-02-12 20:30:46 +0900 (Sun, 12 Feb 2017)
Log Message:
-----------
チケット #36950 SSH SCPでファイルエラー時でもファイルが生成される

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

Ticket Links:
------------
    http://sourceforge.jp/projects/ttssh2/tracker/detail/36950

Modified Paths:
--------------
    trunk/ttssh2/ttxssh/ssh.c

-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2017-02-01 00:52:48 UTC (rev 6585)
+++ trunk/ttssh2/ttxssh/ssh.c	2017-02-12 11:30:46 UTC (rev 6586)
@@ -273,6 +273,7 @@
 static void ssh2_channel_delete(Channel_t *c)
 {
 	bufchain_t *ch, *ptr;
+	enum scp_state prev_state;
 
 	ch = c->bufchain;
 	while (ch) {
@@ -284,6 +285,9 @@
 	}
 
 	if (c->type == TYPE_SCP) {
+		// SCP\x8F\x88\x97\x9D\x82̍Ō\xE3\x82̏\xF3\x91Ԃ\xF0\x95ۑ\xB6\x82\xB7\x82\xE9\x81B
+		prev_state = c->scp.state;
+
 		c->scp.state = SCP_CLOSING;
 		if (c->scp.localfp != NULL) {
 			fclose(c->scp.localfp);
@@ -294,6 +298,11 @@
 					filetime.modtime = c->scp.filemtime;
 					_utime(c->scp.localfilefull, &filetime);
 				}
+
+				// SCP\x8E\xF3\x90M\x82\xAA\x90\xAC\x8C\x{1C2D42}Ă\xA2\x82Ȃ\xAF\x82\xEA\x82΁A\x83\x8D\x81[\x83J\x83\x8B\x82ɍ\xEC\x82\xC1\x82\xBD\x83t\x83@\x83C\x83\x8B\x82̎c\x8A[\x82\xF0\x8D폜\x82\xB7\x82\xE9\x81B
+				// (2017.2.12 yutaka)
+				if (prev_state != SCP_CLOSING)
+					remove(c->scp.localfilefull);
 			}
 		}
 		if (c->scp.progress_window != NULL) {



Ttssh2-commit メーリングリストの案内