[Ttssh2-commit] [8281] IdFileでのWriteFileのエラーハンドリングが誤っていたのを修正した。

scmno****@osdn***** scmno****@osdn*****
2019年 10月 10日 (木) 12:38:30 JST


Revision: 8281
          https://osdn.net/projects/ttssh2/scm/svn/commits/8281
Author:   doda
Date:     2019-10-10 12:38:29 +0900 (Thu, 10 Oct 2019)
Log Message:
-----------
IdFileでのWriteFileのエラーハンドリングが誤っていたのを修正した。

ML: [ttssh2-devel 4279]

問題:
  ログ再生時のWriteFile(データ送信)処理のエラーハンドリングが意図した
  ものと異なっている。
  意図した動作は「ERROR_IO_PENDING 以外のエラー時はデータが送れたと
  して扱う」である。

原因:
  == より ! の方が優先度が高い為。

対処:
  意図した通りになるように条件を書き換えた。

備考:
  以下の理由から実質的な問題は発生していなかったと考える。
  ・IdFile時はWriteFileの実体はDummyWriteFileであり、常に成功を返す
    為このエラー処理が行われない。
  ・DummyWriteFileの戻り値ではなく独自の戻り値を返す可能性がある TTX は
    TTXViewMode, TTXttyplay の二つだが、どちらも常に成功を返す

Modified Paths:
--------------
    trunk/teraterm/teraterm/commlib.c

-------------- next part --------------
Modified: trunk/teraterm/teraterm/commlib.c
===================================================================
--- trunk/teraterm/teraterm/commlib.c	2019-10-09 03:45:51 UTC (rev 8280)
+++ trunk/teraterm/teraterm/commlib.c	2019-10-10 03:38:29 UTC (rev 8281)
@@ -1120,7 +1120,7 @@
 
 		case IdFile:
 			if (! PWriteFile(cv->ComID, &(cv->OutBuff[cv->OutPtr]), C, (LPDWORD)&D, NULL)) {
-				if (! GetLastError() == ERROR_IO_PENDING) {
+				if (! (GetLastError() == ERROR_IO_PENDING)) {
 					D = C; /* ignore data */
 				}
 			}


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