[Ttssh2-commit] [4479] scprecvを連続多重実行すると、正しくchannel closeが送れない問題に対する暫定処置。

svnno****@sourc***** svnno****@sourc*****
2011年 6月 1日 (水) 23:53:36 JST


Revision: 4479
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4479
Author:   yutakapon
Date:     2011-06-01 23:53:36 +0900 (Wed, 01 Jun 2011)

Log Message:
-----------
scprecvを連続多重実行すると、正しくchannel closeが送れない問題に対する暫定処置。
scpsendにも同様の問題が潜在している。

cf.
Subject: [Ttssh2-devel 1925] SCP 受信
http://sourceforge.jp/ticket/browse.php?group_id=1412&tid=25169

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


-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2011-05-30 15:33:07 UTC (rev 4478)
+++ trunk/ttssh2/ttxssh/ssh.c	2011-06-01 14:53:36 UTC (rev 4479)
@@ -7415,6 +7415,7 @@
 
 
 #define WM_SENDING_FILE (WM_USER + 1)
+#define WM_CHANNEL_CLOSE (WM_USER + 2)
 
 typedef struct scp_dlg_parm {
 	Channel_t *c;
@@ -7430,6 +7431,16 @@
 		case WM_INITDIALOG:
 			return FALSE;
 
+		// SCPƒtƒ@ƒCƒ‹ŽóM(remote-to-local)ŽžAŽg—p‚·‚éB
+		case WM_CHANNEL_CLOSE:
+			{
+			scp_dlg_parm_t *parm = (scp_dlg_parm_t *)wp;
+
+			ssh2_channel_send_close(parm->pvar, parm->c);
+			}
+			return TRUE;
+			break;
+
 		case WM_SENDING_FILE:
 			{
 			scp_dlg_parm_t *parm = (scp_dlg_parm_t *)wp;
@@ -7668,6 +7679,7 @@
 	int rate, ProgStat;
 	DWORD stime;
 	int elapsed, prev_elapsed;
+	scp_dlg_parm_t parm;
 
 	InitDlgProgress(hWnd, IDC_PROGBAR, &ProgStat);
 
@@ -7748,7 +7760,13 @@
 	ShowWindow(c->scp.progress_window, SW_HIDE);
 
 cancel_abort:
-	ssh2_channel_send_close(pvar, c);
+	// ƒ`ƒƒƒlƒ‹‚̃Nƒ[ƒY‚ðs‚¢‚½‚¢‚ªA’¼Ú ssh2_channel_send_close() ‚ðŒÄ‚яo‚·‚ƁA
+	// “–ŠYŠÖ”‚ªƒXƒŒƒbƒhƒZ[ƒt‚Å‚Í‚È‚¢‚½‚߁ASCPˆ—‚ª³í‚ɏI—¹‚µ‚È‚¢ê‡‚ª‚ ‚éB
+	// (2011.6.1 yutaka)
+	parm.c = c;
+	parm.pvar = pvar;
+	SendMessage(hWnd, WM_CHANNEL_CLOSE, (WPARAM)&parm, 0);
+
 	return 0;
 }
 



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