[Ttssh2-commit] [8990] 各プロトコルソースにログを組み込み

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2020年 11月 2日 (月) 00:33:59 JST


Revision: 8990
          https://osdn.net/projects/ttssh2/scm/svn/commits/8990
Author:   zmatsuo
Date:     2020-11-02 00:33:59 +0900 (Mon, 02 Nov 2020)
Log Message:
-----------
各プロトコルソースにログを組み込み

Modified Paths:
--------------
    branches/proto_unicode/teraterm/ttpfile/bplus.c
    branches/proto_unicode/teraterm/ttpfile/bplus.h
    branches/proto_unicode/teraterm/ttpfile/kermit.c
    branches/proto_unicode/teraterm/ttpfile/kermit.h
    branches/proto_unicode/teraterm/ttpfile/quickvan.c
    branches/proto_unicode/teraterm/ttpfile/quickvan.h
    branches/proto_unicode/teraterm/ttpfile/xmodem.c
    branches/proto_unicode/teraterm/ttpfile/ymodem.c
    branches/proto_unicode/teraterm/ttpfile/zmodem.c

-------------- next part --------------
Modified: branches/proto_unicode/teraterm/ttpfile/bplus.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/bplus.c	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/bplus.c	2020-11-01 15:33:59 UTC (rev 8990)
@@ -75,6 +75,7 @@
   int TimeOut;
   BOOL CtlEsc;
   BYTE Q[8];
+	TProtoLog *log;
 } TBPVar;
 typedef TBPVar far *PBPVar;
 
@@ -198,11 +199,12 @@
     }
   }
 
-  fv->LogFlag = ((ts->LogFlag & LOG_BP)!=0);
-  if (fv->LogFlag)
-    fv->LogFile = _lcreat("BPLUS.LOG",0);
-  fv->LogState = 0;
-  fv->LogCount = 0;
+  if ((ts->LogFlag & LOG_BP)!=0) {
+	  TProtoLog* log = ProtoLogCreate();
+	  bv->log = log;
+	  log->Open(log, "BPLUS.LOG");
+	  log->LogState = 0;
+  }
 
   return TRUE;
 }
@@ -212,15 +214,15 @@
   if (CommRead1Byte(cv,b) == 0)
     return 0;
 
-  if (fv->LogFlag)
+  if (bv->log != NULL)
   {
-    if (fv->LogState==0)
+	TProtoLog *log = bv->log;
+    if (log->LogState==0)
     {
-      fv->LogState = 1;
-      fv->LogCount = 0;
-      _lwrite(fv->LogFile,"\015\012<<<\015\012",7);
+		log->LogState = 1;
+		log->WriteRaw(log, "\015\012<<<\015\012", 7);
     }
-    FTLog1Byte(fv,*b);
+    log->DumpByte(log, *b);
   }
   return 1;
 }
@@ -231,16 +233,16 @@
 
   i = CommBinaryOut(cv,B,C);
 
-  if (fv->LogFlag && (i>0))
+  if (bv->log != NULL && (i>0))
   {
-    if (fv->LogState != 0)
+	  TProtoLog* log = bv->log;
+	  if (log->LogState != 0)
     {
-      fv->LogState = 0;
-      fv->LogCount = 0;
-      _lwrite(fv->LogFile,"\015\012>>>\015\012",7);
+		  log->LogState = 0;
+		  log->WriteRaw(log,"\015\012>>>\015\012",7);
     }
     for (j=0 ; j <= i-1 ; j++)
-      FTLog1Byte(fv,B[j]);
+      log->DumpByte(log,B[j]);
   }
   return i;
 }
@@ -973,7 +975,13 @@
 
 static void Destroy(PFileVarProto fv)
 {
-	free(fv->data);
+	PBPVar bv = fv->data;
+	if (bv->log != NULL) {
+		TProtoLog* log = bv->log;
+		log->Destory(log);
+		bv->log = NULL;
+	}
+	free(bv);
 	fv->data = NULL;
 }
 

Modified: branches/proto_unicode/teraterm/ttpfile/bplus.h
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/bplus.h	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/bplus.h	2020-11-01 15:33:59 UTC (rev 8990)
@@ -39,12 +39,6 @@
 
 /* prototypes */
 BOOL BPCreate(PFileVarProto fv);
-#if 0
-void BPInit(PFileVarProto fv, PComVar cv, PTTSet ts);
-void BPTimeOutProc(PFileVarProto fv, PComVar cv);
-BOOL BPParse(PFileVarProto fv, PComVar cv);
-void BPCancel(PFileVarProto fv, PComVar cv);
-#endif
 
 #ifdef __cplusplus
 }

Modified: branches/proto_unicode/teraterm/ttpfile/kermit.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/kermit.c	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/kermit.c	2020-11-01 15:33:59 UTC (rev 8990)
@@ -77,6 +77,7 @@
   time_t FileTime;
   int FileMode;
   LONGLONG FileSize;
+	TProtoLog *log;
 } TKmtVar;
 typedef TKmtVar far *PKmtVar;
 
@@ -138,17 +139,16 @@
 
 static void KmtOutputCommonLog(PFileVarProto fv, PKmtVar kv, BYTE *buf, int len)
 {
+	TProtoLog* log = kv->log;
 	int i, datalen, n;
 	char str[128];
 	char type, *s;
 
 	for (i = 0 ; i < len ; i++)
-		FTLog1Byte(fv, buf[i]);
+		log->DumpByte(log, buf[i]);
 
 	// \x8Ec\x82\xE8\x82\xCCASCII\x95\\x8E\xA6\x82\xF0\x8Ds\x82\xA4
-	fv->FlushLogLineBuf = 1;
-	FTLog1Byte(fv, 0);
-	fv->FlushLogLineBuf = 0;
+	log->DumpFlush(log);
 
 	/* \x83p\x83P\x83b\x83g\x82\xF0\x90l\x8AԂɕ\xAA\x82\xA9\x82\xE8\x82₷\x82\xAD\x95\\x8E\xA6\x82\xB7\x82\xE9\x81B
 	Packet Format
@@ -192,7 +192,7 @@
 
 		_snprintf_s(str, sizeof(str), _TRUNCATE, "MARK=%x LEN=%d SEQ#=%d TYPE=%s DATA_LEN=%d\n",
 			buf[0], n, KmtNum(buf[2]), s, datalen);
-		_lwrite(fv->LogFile, str, strlen(str));
+		log->WriteRaw(log, str, strlen(str));
 
 		// Initial Connection
 		if (type == 'S' && datalen >= 6) {
@@ -234,8 +234,8 @@
 				strncat_s(str, sizeof(str), t, _TRUNCATE);
 			}
 
-			_lwrite(fv->LogFile, str, strlen(str));
-			_lwrite(fv->LogFile, "\015\012", 2);
+			log->WriteRaw(log, str, strlen(str));
+			log->WriteRaw(log, "\015\012", 2);
 
 		}
 	}
@@ -243,9 +243,10 @@
 
 static void KmtReadLog(PFileVarProto fv, PKmtVar kv, BYTE *buf, int len)
 {
-	if (fv->LogFlag && (len>0))
+	if (kv->log != NULL && (len>0))
 	{
-		_lwrite(fv->LogFile,"\015\012<<<\015\012",7);
+		TProtoLog* log = kv->log;
+		log->WriteRaw(log, "\015\012<<<\015\012",7);
 		KmtOutputCommonLog(fv, kv, buf, len);
 	}
 }
@@ -252,9 +253,10 @@
 
 static void KmtWriteLog(PFileVarProto fv, PKmtVar kv, BYTE *buf, int len)
 {
-	if (fv->LogFlag && (len>0))
+	if (kv->log != NULL && (len>0))
 	{
-		_lwrite(fv->LogFile,"\015\012>>>\015\012",7);
+		TProtoLog* log = kv->log;
+		log->WriteRaw(log, "\015\012>>>\015\012",7);
 		KmtOutputCommonLog(fv, kv, buf, len);
 	}
 }
@@ -265,12 +267,13 @@
 	int len;
 	va_list arg;
 
-	if (fv->LogFlag) {
+	if (kv->log != NULL) {
+		TProtoLog* log = kv->log;
 		va_start(arg, fmt);
 		len = _vsnprintf_s(tmp, sizeof(tmp), _TRUNCATE, fmt, arg);
 		va_end(arg);
-		_lwrite(fv->LogFile, tmp, len);
-		_lwrite(fv->LogFile,"\015\012",2);
+		log->WriteRaw(log, tmp, len);
+		log->WriteRaw(log, "\015\012", 2);
 	}
 }
 
@@ -329,12 +332,12 @@
 #endif
 	CommBinaryOut(cv,&kv->PktOut[0], C);
 
-	if (fv->LogFlag)
-	{
+	if (kv->log != NULL) {
 #if 0
-		_lwrite(fv->LogFile,"> ",2);
-		_lwrite(fv->LogFile,&(kv->PktOut[1]),C-1);
-		_lwrite(fv->LogFile,"\015\012",2);
+		TProtoLog* log = kv->log;
+		log->WriteRaw(log, "> ",2);
+		log->WriteRaw(log, &(kv->PktOut[1]),C-1);
+		log->WriteRaw(log, "\015\012",2);
 #else
 		KmtWriteLog(fv, kv, &(kv->PktOut[0]), C);
 #endif
@@ -1224,17 +1227,16 @@
 	kv->PktNumOffset = 0;
 	kv->PktNum = 0;
 
-	fv->LogFlag = ((ts->LogFlag & LOG_KMT)!=0);
-	if (fv->LogFlag) {
+	if ((ts->LogFlag & LOG_KMT)!=0) {
+		TProtoLog* log = ProtoLogCreate();
 		char buf[128];
 		char ctime_str[128];
 		time_t tm = time(NULL);
 		ctime_s(ctime_str, sizeof(ctime_str), &tm);
 
-		fv->LogFile = _lcreat("KERMIT.LOG",0);
-		fv->LogCount = 0;
-		fv->LogState = 0;
-		fv->FlushLogLineBuf = 0;
+		kv->log = log;
+		log->Open(log, "KERMIT.LOG");
+		log->LogState = 0;
 		_snprintf_s(buf, sizeof(buf), _TRUNCATE, "KERMIT %s start: %s\n",
 			kv->KmtMode == IdKmtSend ? "Send" :
 			kv->KmtMode == IdKmtReceive ? "Receive" :
@@ -1241,7 +1243,7 @@
 			kv->KmtMode == IdKmtGet ? "Get" : "Finish",
 			ctime_str
 			);
-		_lwrite(fv->LogFile, buf, strlen(buf));
+		log->WriteRaw(log, buf, strlen(buf));
 	}
 
 	switch (kv->KmtMode) {
@@ -1383,7 +1385,7 @@
 read_end:
 	if (! GetPkt) return TRUE;
 
-	if (fv->LogFlag)
+	if (kv->log != NULL)
 	{
 #ifdef KERMIT_CAPAS
 		KmtReadLog(fv, kv, &(kv->PktIn[0]), kv->PktInCount);
@@ -1625,7 +1627,13 @@
 
 static void Destroy(PFileVarProto fv)
 {
-	free(fv->data);
+	PKmtVar kv = fv->data;
+	if (kv->log != NULL) {
+		TProtoLog* log = kv->log;
+		log->Destory(log);
+		kv->log = NULL;
+	}
+	free(kv);
 	fv->data = NULL;
 }
 

Modified: branches/proto_unicode/teraterm/ttpfile/kermit.h
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/kermit.h	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/kermit.h	2020-11-01 15:33:59 UTC (rev 8990)
@@ -41,12 +41,6 @@
 
 /* prototypes */
 BOOL KmtCreate(PFileVarProto fv);
-#if 0
-void KmtInit(PFileVarProto fv, PComVar cv, PTTSet ts);
-void KmtTimeOutProc(PFileVarProto fv, PComVar cv);
-BOOL KmtReadPacket(PFileVarProto fv, PComVar cv);
-void KmtCancel(PFileVarProto fv, PComVar cv);
-#endif
 
 #ifdef __cplusplus
 }

Modified: branches/proto_unicode/teraterm/ttpfile/quickvan.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/quickvan.c	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/quickvan.c	2020-11-01 15:33:59 UTC (rev 8990)
@@ -62,6 +62,7 @@
   WORD SeqSent, WinEnd, FileEnd;
   BOOL EnqFlag;
   BYTE CheckSum;
+	TProtoLog *log;
 } TQVVar;
 typedef TQVVar far *PQVVar;
 
@@ -109,15 +110,14 @@
   if (CommRead1Byte(cv,b) == 0)
     return 0;
 
-  if (fv->LogFlag)
-  {
-    if (fv->LogState!=1)
+  if (qv->log != NULL) {
+	TProtoLog *log = qv->log;
+    if (log->LogState!=1)
     {
-      fv->LogState = 1;
-      fv->LogCount = 0;
-      _lwrite(fv->LogFile,"\015\012<<<\015\012",7);
+		log->LogState = 1;
+		log->WriteRaw(log, "\015\012<<<\015\012", 7);
     }
-    FTLog1Byte(fv,*b);
+    log->DumpByte(log, *b);
   }
   return 1;
 }
@@ -128,16 +128,14 @@
 
   i = CommBinaryOut(cv,B,C);
 
-  if (fv->LogFlag && (i>0))
-  {
-    if (fv->LogState != 0)
-    {
-      fv->LogState = 0;
-      fv->LogCount = 0;
-      _lwrite(fv->LogFile,"\015\012>>>\015\012",7);
+  if (qv->log != NULL && (i>0)) {
+	  TProtoLog* log = qv->log;
+	  if (log->LogState != 0) {
+		  log->LogState = 0;
+		  log->WriteRaw(log, "\015\012>>>\015\012", 7);
     }
     for (j=0 ; j <= i-1 ; j++)
-      FTLog1Byte(fv,B[j]);
+      log->DumpByte(log, B[j]);
   }
   return i;
 }
@@ -168,12 +166,13 @@
   UILanguageFile = ts->UILanguageFile;
 
   qv->WinSize = ts->QVWinSize;
-  fv->LogFlag = ((ts->LogFlag & LOG_QV)!=0);
 
-  if (fv->LogFlag)
-    fv->LogFile = _lcreat("QUICKVAN.LOG",0);
-  fv->LogState = 2;
-  fv->LogCount = 0;
+  if ((ts->LogFlag & LOG_QV)!=0) {
+	  TProtoLog* log = ProtoLogCreate();
+	  qv->log = log;
+	  log->Open(log, "QUICKVAN.LOG");
+	  log->LogState = 2;
+  }
 
   fv->FileOpen = FALSE;
   fv->ByteCount = 0;
@@ -1323,7 +1322,13 @@
 
 static void Destroy(PFileVarProto fv)
 {
-	free(fv->data);
+	PQVVar qv = fv->data;
+	if (qv->log != NULL) {
+		TProtoLog* log = qv->log;
+		log->Destory(log);
+		qv->log = NULL;
+	}
+	free(qv);
 	fv->data = NULL;
 }
 

Modified: branches/proto_unicode/teraterm/ttpfile/quickvan.h
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/quickvan.h	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/quickvan.h	2020-11-01 15:33:59 UTC (rev 8990)
@@ -39,14 +39,6 @@
 
 /* prototypes */
 BOOL QVCreate(PFileVarProto fv);
-#if 0
-void QVInit(PFileVarProto fv, PComVar cv, PTTSet ts);
-void QVCancel(PFileVarProto fv, PComVar cv);
-void QVTimeOutProc(PFileVarProto fv, PComVar cv);
-BOOL QVParse(PFileVarProto fv, PComVar cv);
-#endif
-//BOOL QVReadPacket(PFileVarProto fv, PQVVar qv, PComVar cv);
-//BOOL QVSendPacket(PFileVarProto fv, PQVVar qv, PComVar cv);
 
 #ifdef __cplusplus
 }

Modified: branches/proto_unicode/teraterm/ttpfile/xmodem.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/xmodem.c	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/xmodem.c	2020-11-01 15:33:59 UTC (rev 8990)
@@ -57,6 +57,7 @@
   int TOutInitCRC;
   int TOutVLong;
   int CANCount;
+	TProtoLog *log;
 } TXVar;
 typedef TXVar far *PXVar;
 
@@ -81,18 +82,17 @@
 	if (CommRead1Byte(cv, b) == 0)
 		return 0;
 
-	if (fv->LogFlag) {
-		if (fv->LogState == 0) {
+	if (xv->log != NULL) {
+		TProtoLog *log = xv->log;
+
+		if (log->LogState == 0) {
 			// \x8Ec\x82\xE8\x82\xCCASCII\x95\\x8E\xA6\x82\xF0\x8Ds\x82\xA4
-			fv->FlushLogLineBuf = 1;
-			FTLog1Byte(fv, 0);
-			fv->FlushLogLineBuf = 0;
+			log->DumpFlush(log);
 
-			fv->LogState = 1;
-			fv->LogCount = 0;
-			_lwrite(fv->LogFile, "\015\012<<<\015\012", 7);
+			log->LogState = 1;
+			log->WriteRaw(log, "\015\012<<<\015\012", 7);
 		}
-		FTLog1Byte(fv, *b);
+		log->DumpByte(log, *b);
 	}
 	return 1;
 }
@@ -102,19 +102,17 @@
 	int i, j;
 
 	i = CommBinaryOut(cv, B, C);
-	if (fv->LogFlag && (i > 0)) {
-		if (fv->LogState != 0) {
+	if (xv->log != NULL && (i > 0)) {
+		TProtoLog* log = xv->log;
+		if (log->LogState != 0) {
 			// \x8Ec\x82\xE8\x82\xCCASCII\x95\\x8E\xA6\x82\xF0\x8Ds\x82\xA4
-			fv->FlushLogLineBuf = 1;
-			FTLog1Byte(fv, 0);
-			fv->FlushLogLineBuf = 0;
+			log->DumpFlush(log);
 
-			fv->LogState = 0;
-			fv->LogCount = 0;
-			_lwrite(fv->LogFile, "\015\012>>>\015\012", 7);
+			log->LogState = 0;
+			log->WriteRaw(log, "\015\012>>>\015\012", 7);
 		}
 		for (j = 0; j <= i - 1; j++)
-			FTLog1Byte(fv, B[j]);
+			log->DumpByte(log, B[j]);
 	}
 	return i;
 }
@@ -221,11 +219,13 @@
 BOOL XInit(PFileVarProto fv, PComVar cv, PTTSet ts)
 {
 	PXVar xv = fv->data;
-	fv->LogFlag = ((ts->LogFlag & LOG_X) != 0);
-	if (fv->LogFlag)
-		fv->LogFile = _lcreat("XMODEM.LOG", 0);
-	fv->LogState = 0;
-	fv->LogCount = 0;
+	BOOL LogFlag = ((ts->LogFlag & LOG_X) != 0);
+	if (LogFlag) {
+		TProtoLog* log = ProtoLogCreate();
+		xv->log = log;
+		log->Open(log, "XMODEM.LOG");
+		log->LogState = 0;
+	}
 
 	fv->FileSize = 0;
 	if (xv->XMode == IdXSend) {
@@ -657,7 +657,13 @@
 
 static void Destroy(PFileVarProto fv)
 {
-	free(fv->data);
+	PXVar xv = fv->data;
+	if (xv->log != NULL) {
+		TProtoLog* log = xv->log;
+		log->Destory(log);
+		xv->log = NULL;
+	}
+	free(xv);
 	fv->data = NULL;
 }
 
@@ -678,5 +684,7 @@
 	fv->Cancel = XCancel;
 	fv->SetOptV = SetOptV;
 
+	xv->log = ProtoLogCreate();
+
 	return TRUE;
 }

Modified: branches/proto_unicode/teraterm/ttpfile/ymodem.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/ymodem.c	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/ymodem.c	2020-11-01 15:33:59 UTC (rev 8990)
@@ -69,6 +69,7 @@
   WORD DataLen;
   BYTE LastMessage;
   BOOL RecvFilesize;
+	TProtoLog *log;
 } TYVar;
 typedef TYVar *PYVar;
 
@@ -103,21 +104,18 @@
 	if (CommRead1Byte(cv,b) == 0)
 		return 0;
 
-	if (fv->LogFlag)
+	if (yv->log != NULL)
 	{
-		if (fv->LogState==0)
+		TProtoLog *log = yv->log;
+		if (log->LogState==0)
 		{
 			// \x8Ec\x82\xE8\x82\xCCASCII\x95\\x8E\xA6\x82\xF0\x8Ds\x82\xA4
-			fv->FlushLogLineBuf = 1;
-			FTLog1Byte(fv,0);
-			fv->FlushLogLineBuf = 0;
+			log->DumpFlush(log);
 
-			fv->LogState = 1;
-			fv->LogCount = 0;
-			fv->FlushLogLineBuf = 0;
-			_lwrite(fv->LogFile,"\015\012<<<\015\012",7);
+			log->LogState = 1;
+			log->WriteRaw(log, "\015\012<<<\015\012", 7);
 		}
-		FTLog1Byte(fv,*b);
+		log->DumpByte(log, *b);
 	}
 	return 1;
 }
@@ -127,21 +125,19 @@
 	int i, j;
 
 	i = CommBinaryOut(cv,B,C);
-	if (fv->LogFlag && (i>0))
+	if (yv->log != NULL && (i>0))
 	{
-		if (fv->LogState != 0)
+		TProtoLog* log = yv->log;
+		if (log->LogState != 0)
 		{
 			// \x8Ec\x82\xE8\x82\xCCASCII\x95\\x8E\xA6\x82\xF0\x8Ds\x82\xA4
-			fv->FlushLogLineBuf = 1;
-			FTLog1Byte(fv,0);
-			fv->FlushLogLineBuf = 0;
+			log->DumpFlush(log);
 
-			fv->LogState = 0;
-			fv->LogCount = 0;
-			_lwrite(fv->LogFile,"\015\012>>>\015\012",7);
+			log->LogState = 0;
+			log->WriteRaw(log, "\015\012>>>\015\012", 7);
 		}
 		for (j=0 ; j <= i-1 ; j++)
-			FTLog1Byte(fv,B[j]);
+			log->DumpByte(log, B[j]);
 	}
 	return i;
 }
@@ -347,11 +343,12 @@
 		}
 	}
 
-	fv->LogFlag = ((ts->LogFlag & LOG_Y)!=0);
-	if (fv->LogFlag)
-		fv->LogFile = _lcreat("YMODEM.LOG",0);
-	fv->LogState = 0;
-	fv->LogCount = 0;
+	if ((ts->LogFlag & LOG_Y)!=0) {
+		TProtoLog* log = ProtoLogCreate();
+		yv->log = log;
+		log->Open(log, "YMODEM.LOG");
+		log->LogState = 0;
+	}
 
 	SetWindowText(fv->HWin, fv->DlgCaption);
 
@@ -383,7 +380,7 @@
 		yv->NAKCount = 10;
 	}
 
-	if (fv->LogFlag) {
+	if (yv->log != NULL) {
 		char buf[128];
 		char ctime_str[128];
 		time_t tm = time(NULL);
@@ -392,7 +389,7 @@
 		_snprintf_s(buf, sizeof(buf), _TRUNCATE, "YMODEM %s start: %s\n",
 		            yv->YMode == IdYSend ? "Send" : "Recv",
 		            ctime_str);
-		_lwrite(fv->LogFile, buf, strlen(buf));
+		yv->log->WriteRaw(yv->log, buf, strlen(buf));
 	}
 
 	switch (yv->YMode) {
@@ -1126,7 +1123,13 @@
 
 static void Destroy(PFileVarProto fv)
 {
-	free(fv->data);
+	PYVar yv = fv->data;
+	if (yv->log != NULL) {
+		TProtoLog* log = yv->log;
+		log->Destory(log);
+		yv->log = NULL;
+	}
+	free(yv);
 	fv->data = NULL;
 }
 

Modified: branches/proto_unicode/teraterm/ttpfile/zmodem.c
===================================================================
--- branches/proto_unicode/teraterm/ttpfile/zmodem.c	2020-11-01 15:33:41 UTC (rev 8989)
+++ branches/proto_unicode/teraterm/ttpfile/zmodem.c	2020-11-01 15:33:59 UTC (rev 8990)
@@ -80,6 +80,7 @@
   BYTE LastSent;
   int TOutInit;
   int TOutFin;
+	TProtoLog *log;
 } TZVar;
 typedef TZVar far *PZVar;
 
@@ -183,13 +184,13 @@
 }
 
 
-static void show_recvbuf(PFileVarProto fv)
+static void show_recvbuf(TProtoLog* log)
 {
 	char *s;
 
 	s = recvbuf;
 	strncat_s(recvbuf, sizeof(recvbuf), "\015\012", _TRUNCATE);
-	_lwrite(fv->LogFile, s, strlen(s));
+	log->WriteRaw(log, s, strlen(s));
 
 	memset(recvbuf, 0, sizeof(recvbuf));
 }
@@ -205,13 +206,13 @@
 	va_end(arg);
 }
 
-static void show_sendbuf(PFileVarProto fv)
+static void show_sendbuf(TProtoLog* log)
 {
 	char *s;
 
 	s = sendbuf;
 	strncat_s(sendbuf, sizeof(sendbuf), "\015\012", _TRUNCATE);
-	_lwrite(fv->LogFile, s, strlen(s));
+	log->WriteRaw(log, s, strlen(s));
 
 	memset(sendbuf, 0, sizeof(sendbuf));
 }
@@ -254,21 +255,19 @@
 	if (CommRead1Byte(cv, b) == 0)
 		return 0;
 
-	if (fv->LogFlag) {
-		if (fv->LogState == 0) {
+	if (zv->log != NULL) {
+		TProtoLog *log = zv->log;
+		if (log->LogState == 0) {
 			// \x8Ec\x82\xE8\x82\xCCASCII\x95\\x8E\xA6\x82\xF0\x8Ds\x82\xA4
-			fv->FlushLogLineBuf = 1;
-			FTLog1Byte(fv, 0);
-			fv->FlushLogLineBuf = 0;
+			log->DumpFlush(log);
 
-			show_sendbuf(fv);
+			show_sendbuf(log);
 
-			fv->LogState = 1;
-			fv->LogCount = 0;
+			log->LogState = 1;
 			s = "\015\012<<< Received\015\012";
-			_lwrite(fv->LogFile, s, strlen(s));
+			log->WriteRaw(log, s, strlen(s));
 		}
-		FTLog1Byte(fv, *b);
+		log->DumpByte(log, *b);
 	}
 	/* ignore 0x11, 0x13, 0x81 and 0x83 */
 	if (((*b & 0x7F) == 0x11) || ((*b & 0x7F) == 0x13))
@@ -283,22 +282,20 @@
 
 	i = CommBinaryOut(cv, B, C);
 
-	if (fv->LogFlag && (i > 0)) {
-		if (fv->LogState != 0) {
+	if (zv->log != NULL && (i > 0)) {
+		TProtoLog* log = zv->log;
+		if (log->LogState != 0) {
 			// \x8Ec\x82\xE8\x82\xCCASCII\x95\\x8E\xA6\x82\xF0\x8Ds\x82\xA4
-			fv->FlushLogLineBuf = 1;
-			FTLog1Byte(fv, 0);
-			fv->FlushLogLineBuf = 0;
+			log->DumpFlush(log);
 
-			show_recvbuf(fv);
+			show_recvbuf(log);
 
-			fv->LogState = 0;
-			fv->LogCount = 0;
+			log->LogState = 0;
 			s = "\015\012Sending >>>\015\012";
-			_lwrite(fv->LogFile, s, strlen(s));
+			log->WriteRaw(log, s, strlen(s));
 		}
 		for (j = 0; j <= i - 1; j++)
-			FTLog1Byte(fv, B[j]);
+			log->DumpByte(log, B[j]);
 	}
 	return i;
 }
@@ -702,7 +699,6 @@
 	zv->CtlEsc = ((ts->FTFlag & FT_ZESCCTL) != 0);
 	zv->MaxDataLen = ts->ZmodemDataLen;
 	zv->WinSize = ts->ZmodemWinSize;
-	fv->LogFlag = ((ts->LogFlag & LOG_Z) != 0);
 
 	if (zv->ZMode == IdZAutoR || zv->ZMode == IdZAutoS) {
 		if (zv->ZMode == IdZAutoR) {
@@ -786,10 +782,12 @@
 	if (zv->MaxDataLen > Max)
 		zv->MaxDataLen = Max;
 
-	if (fv->LogFlag)
-		fv->LogFile = _lcreat("ZMODEM.LOG", 0);
-	fv->LogState = 0;
-	fv->LogCount = 0;
+	if ((ts->LogFlag & LOG_Z) != 0) {
+		TProtoLog* log = ProtoLogCreate();
+		zv->log = log;
+		log->Open(log, "ZMODEM.LOG");
+		log->LogState = 0;
+	}
 
 	switch (zv->ZMode) {
 	case IdZReceive:
@@ -1502,7 +1500,13 @@
 
 static void Destroy(PFileVarProto fv)
 {
-	free(fv->data);
+	PZVar zv = fv->data;
+	if (zv->log != NULL) {
+		TProtoLog* log = zv->log;
+		log->Destory(log);
+		zv->log = NULL;
+	}
+	free(zv);
 	fv->data = NULL;
 }
 


Ttssh2-commit メーリングリストの案内
Back to archive index