svnno****@sourc*****
svnno****@sourc*****
2012年 3月 11日 (日) 21:01:11 JST
Revision: 4863 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4863 Author: yutakapon Date: 2012-03-11 21:01:10 +0900 (Sun, 11 Mar 2012) Log Message: ----------- 一度確立した名前付きパイプが、切断された場合に対する考慮が漏れていたので、処理を追加した。 - スレッドの終了エラーコードの修正およびFD_CLOSE処理 - 送信処理のエラーチェックバグ修正 Modified Paths: -------------- trunk/teraterm/teraterm/commlib.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/commlib.c =================================================================== --- trunk/teraterm/teraterm/commlib.c 2012-03-10 13:25:39 UTC (rev 4862) +++ trunk/teraterm/teraterm/commlib.c 2012-03-11 12:01:10 UTC (rev 4863) @@ -675,8 +675,9 @@ WaitForSingleObject(REnd,INFINITE); } else { - DErr = GetLastError(); // this returns 995 (operation aborted) if a USB com port is removed - if (! cv->Ready || ERROR_OPERATION_ABORTED == DErr) { + DErr = GetLastError(); // this returns 109 (broken pipe) if a named pipe is removed. + if (! cv->Ready || ERROR_BROKEN_PIPE == DErr) { + PostMessage(cv->HWin, WM_USER_COMMNOTIFY, 0, FD_CLOSE); _endthread(); } } @@ -1192,7 +1193,9 @@ case IdNamedPipe: if (! PWriteFile(cv->ComID, &(cv->OutBuff[cv->OutPtr]), C, (LPDWORD)&D, NULL)) { - if (! GetLastError() == ERROR_IO_PENDING) { + // ERROR_IO_PENDING \x88ȊO\x82̃G\x83\x89\x81[\x82\xBE\x82\xC1\x82\xBD\x82\xE7\x81A\x83p\x83C\x83v\x82\xAA\x83N\x83\x8D\x81[\x83Y\x82\xB3\x82\xEA\x82Ă\xA2\x82邩\x82\xE0\x82\xB5\x82\xEA\x82Ȃ\xA2\x82\xAA\x81A + // \x91\x97\x90M\x82ł\xAB\x82\xBD\x82\xB1\x82Ƃɂ\xB7\x82\xE9\x81B + if (! (GetLastError() == ERROR_IO_PENDING)) { D = C; /* ignore data */ } }