[Ttssh2-commit] [4500] SCPファイル受信処理において、スレッドへのポストを無限リトライするようにし、メッセージが空振り

svnno****@sourc***** svnno****@sourc*****
2011年 6月 15日 (水) 21:23:52 JST


Revision: 4500
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4500
Author:   yutakapon
Date:     2011-06-15 21:23:52 +0900 (Wed, 15 Jun 2011)

Log Message:
-----------
SCPファイル受信処理において、スレッドへのポストを無限リトライするようにし、メッセージが空振り
しないようにした。受信処理が途中で停止してしまう問題への対処。

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


-------------- next part --------------
Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c	2011-06-15 10:49:55 UTC (rev 4499)
+++ trunk/ttssh2/ttxssh/ssh.c	2011-06-15 12:23:52 UTC (rev 4500)
@@ -7864,9 +7864,15 @@
 
 	} else if (c->scp.state == SCP_DATA) {  // payload‚ÌŽóM
 		unsigned char *newdata = malloc(buflen);
+		BOOL ret;
 		if (newdata != NULL) {
 			memcpy(newdata, data, buflen);
-			PostThreadMessage(c->scp.thread_id, WM_RECEIVING_FILE, (WPARAM)newdata, (LPARAM)buflen);
+			do {
+				// ƒXƒŒƒbƒh‚ªƒLƒ…[‚ðì‚Á‚Ä‚¢‚È‚¢ê‡AƒƒbƒZ[ƒWƒ|ƒXƒg‚ªŽ¸”s‚·‚邱‚Æ‚ª‚ ‚é‚̂ŁA
+				// –³ŒÀƒŠƒgƒ‰ƒC‚·‚éBMSDN‚É‚»‚¤‚µ‚ë‚Ə‘‚¢‚Ä‚ ‚éB
+				// (2011.6.15 yutaka)
+				ret = PostThreadMessage(c->scp.thread_id, WM_RECEIVING_FILE, (WPARAM)newdata, (LPARAM)buflen);
+			} while (ret == FALSE);
 		}
 
 	} else if (c->scp.state == SCP_CLOSING) {  // EOF‚ÌŽóM



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