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; }