From 4a4096bf5d55b9ab033dee43ef40e84dbf34f666 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 16 Oct 2023 15:22:53 +0300 Subject: YAMN: slack debug code removed --- protocols/YAMN/src/account.cpp | 108 ++++++------------- protocols/YAMN/src/account.h | 167 ++++++++++++++--------------- protocols/YAMN/src/debug.cpp | 75 ++----------- protocols/YAMN/src/debug.h | 40 +++---- protocols/YAMN/src/mails/decode.cpp | 8 +- protocols/YAMN/src/mails/mime.cpp | 66 ++++++------ protocols/YAMN/src/proto/netlib.cpp | 30 +++--- protocols/YAMN/src/proto/pop3/pop3.cpp | 2 +- protocols/YAMN/src/proto/pop3/pop3comm.cpp | 50 ++++----- 9 files changed, 211 insertions(+), 335 deletions(-) diff --git a/protocols/YAMN/src/account.cpp b/protocols/YAMN/src/account.cpp index 572418305e..692a881d52 100644 --- a/protocols/YAMN/src/account.cpp +++ b/protocols/YAMN/src/account.cpp @@ -195,45 +195,24 @@ uint32_t FileToMemory(const wchar_t *FileName, char **MemFile, char **End) #if defined(DEBUG_FILEREAD) || defined(DEBUG_FILEREADMESSAGES) uint32_t ReadStringFromMemory(char **Parser, wchar_t *End, char **StoreTo, wchar_t *DebugString) +#else +uint32_t ReadStringFromMemory(char **Parser, char *End, char **StoreTo) +#endif { - // This is the debug version of ReadStringFromMemory function. This version shows MessageBox where - // read string is displayed - wchar_t *Dest, *Finder; - uint32_t Size; - wchar_t Debug[65536]; - - Finder = *Parser; + char *Finder = *Parser; while ((*Finder != (wchar_t)0) && (Finder <= End)) Finder++; + + #if defined(DEBUG_FILEREAD) || defined(DEBUG_FILEREADMESSAGES) + wchar_t Debug[65536]; mir_snwprintf(Debug, L"%s: %s,length is %d, remaining %d chars", DebugString, *Parser, Finder - *Parser, End - Finder); MessageBox(NULL, Debug, L"debug", MB_OK); - if (Finder >= End) - return EACC_FILECOMPATIBILITY; - if (Size = Finder - *Parser) { - if (NULL == (Dest = *StoreTo = new wchar_t[Size + 1])) - return EACC_ALLOC; - for (; *Parser <= Finder; (*Parser)++, Dest++) - *Dest = **Parser; - } - else { - *StoreTo = NULL; - (*Parser)++; - } - return 0; -} -#endif - -uint32_t ReadStringFromMemory(char **Parser, char *End, char **StoreTo) -{ - char *Dest, *Finder; - uint32_t Size; + #endif - Finder = *Parser; - while ((*Finder != (wchar_t)0) && (Finder <= End)) Finder++; if (Finder >= End) return EACC_FILECOMPATIBILITY; - if (Size = Finder - *Parser) { - if (nullptr == (Dest = *StoreTo = new char[Size + 1])) - return EACC_ALLOC; + + if (uint32_t Size = Finder - *Parser) { + char *Dest = *StoreTo = new char[Size + 1]; for (; *Parser <= Finder; (*Parser)++, Dest++) *Dest = **Parser; } @@ -246,45 +225,24 @@ uint32_t ReadStringFromMemory(char **Parser, char *End, char **StoreTo) #if defined(DEBUG_FILEREAD) || defined(DEBUG_FILEREADMESSAGES) uint32_t ReadStringFromMemoryW(wchar_t **Parser, wchar_t *End, wchar_t **StoreTo, wchar_t *DebugString) +#else +uint32_t ReadStringFromMemoryW(wchar_t **Parser, wchar_t *End, wchar_t **StoreTo) +#endif { - // This is the debug version of ReadStringFromMemoryW function. This version shows MessageBox where - // read string is displayed - wchar_t *Dest, *Finder; - uint32_t Size; - wchar_t Debug[65536]; - - Finder = *Parser; + wchar_t *Finder = *Parser; while ((*Finder != (wchar_t)0) && (Finder <= (wchar_t *)End)) Finder++; + + #if defined(DEBUG_FILEREAD) || defined(DEBUG_FILEREADMESSAGES) + wchar_t Debug[65536]; mir_snwprintf(Debug, L"%s: %s,length is %d, remaining %d chars", DebugString, *Parser, Finder - *Parser, (wchar_t *)End - Finder); MessageBoxW(NULL, Debug, L"debug", MB_OK); - if (Finder >= (wchar_t *)End) - return EACC_FILECOMPATIBILITY; - if (Size = Finder - *Parser) { - if (NULL == (Dest = *StoreTo = new wchar_t[Size + 1])) - return EACC_ALLOC; - for (; *Parser <= Finder; (*Parser)++, Dest++) - *Dest = **Parser; - } - else { - *StoreTo = NULL; - (*Parser)++; - } - return 0; -} -#endif // if defined(DEBUG...) - -uint32_t ReadStringFromMemoryW(wchar_t **Parser, wchar_t *End, wchar_t **StoreTo) -{ - wchar_t *Dest, *Finder; - uint32_t Size; + #endif - Finder = *Parser; - while ((*Finder != (wchar_t)0) && (Finder <= (wchar_t *)End)) Finder++; if (Finder >= (wchar_t *)End) return EACC_FILECOMPATIBILITY; - if (Size = Finder - *Parser) { - if (nullptr == (Dest = *StoreTo = new wchar_t[Size + 1])) - return EACC_ALLOC; + + if (uint32_t Size = Finder - *Parser) { + wchar_t *Dest = *StoreTo = new wchar_t[Size + 1]; for (; *Parser <= Finder; (*Parser)++, Dest++) *Dest = **Parser; } @@ -368,15 +326,14 @@ uint32_t ReadMessagesFromMemory(CAccount *Which, char **Parser, char *End) if (Finder >= End) return EACC_FILECOMPATIBILITY; if (Size = Finder - *Parser) { - if (Which->Mails == nullptr) // First message in queue - { + if (Which->Mails == nullptr) { // First message in queue if (nullptr == (Which->Mails = ActualMail = CreateAccountMail(Which))) return EACC_ALLOC; } else { - if (nullptr == (ActualMail->Next = CreateAccountMail(Which))) { + if (nullptr == (ActualMail->Next = CreateAccountMail(Which))) return EACC_ALLOC; - } + ActualMail = ActualMail->Next; } items = nullptr; @@ -386,7 +343,6 @@ uint32_t ReadMessagesFromMemory(CAccount *Which, char **Parser, char *End) if (Stat = ReadStringFromMemory(Parser, End, &ActualMail->ID)) #endif return Stat; - // ActualMail->MailData=new MAILDATA; !!! mem leake !!! this is alloc by CreateAccountMail, no need for doubble alloc !!!! ActualMail->MailData->Size = *(uint32_t *)(*Parser); (*Parser) += sizeof(uint32_t); @@ -415,7 +371,7 @@ uint32_t ReadMessagesFromMemory(CAccount *Which, char **Parser, char *End) break; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%s", ReadString); + mir_writeLogA(DecodeFile, "%s", ReadString); #endif if (items == nullptr) @@ -436,14 +392,14 @@ uint32_t ReadMessagesFromMemory(CAccount *Which, char **Parser, char *End) return Stat; items->value = ReadString; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%s\n", ReadString); + mir_writeLogA(DecodeFile, "%s\n", ReadString); #endif } while (1); } else break; // no next messages, new account! - } while (1); + } while (true); (*Parser)++; return 0; } @@ -509,8 +465,8 @@ uint32_t ReadAccountFromMemory(CAccount *Which, char **Parser, char *End) mir_snwprintf(Debug, L"STFlags: %04x, remaining %d chars", Which->StatusFlags, End - *Parser); MessageBox(NULL, Debug, L"debug", MB_OK); #endif - Which->PluginFlags = *(uint32_t *)(*Parser); - (*Parser) += sizeof(uint32_t); + + (*Parser) += sizeof(uint32_t); // PluginFlags #ifdef DEBUG_FILEREAD mir_snwprintf(Debug, L"PFlags: %04x, remaining %d chars", Which->PluginFlags, End - *Parser); MessageBox(NULL, Debug, L"debug", MB_OK); @@ -761,9 +717,11 @@ static INT_PTR PerformAccountWriting(YAMN_PROTOPLUGIN *Plugin, HANDLE File) } CodeDecodeString(ActualAccount->Server->Passwd, FALSE); + uint32_t PluginFlags = 0; + if ((!WriteFile(File, (char *)&ActualAccount->Flags, sizeof(uint32_t), &WrittenBytes, nullptr) || (!WriteFile(File, (char *)&ActualAccount->StatusFlags, sizeof(uint32_t), &WrittenBytes, nullptr)) || - (!WriteFile(File, (char *)&ActualAccount->PluginFlags, sizeof(uint32_t), &WrittenBytes, nullptr)))) + (!WriteFile(File, (char *)&PluginFlags, sizeof(uint32_t), &WrittenBytes, nullptr)))) throw (uint32_t)EACC_SYSTEM; if (!WriteFile(File, (char *)&ActualAccount->Interval, sizeof(uint16_t), &WrittenBytes, nullptr)) diff --git a/protocols/YAMN/src/account.h b/protocols/YAMN/src/account.h index cadd83a1ec..afe325fcef 100644 --- a/protocols/YAMN/src/account.h +++ b/protocols/YAMN/src/account.h @@ -12,49 +12,49 @@ #include #include - // - //================================== OTHER DEFINITIONS ======================================== - // +// +// ================================== OTHER DEFINITIONS ======================================== +// +// Error codes returned from functions (services) working with account book files enum { - // Error codes returned from functions (services) working with account book files - EACC_SYSTEM = 1, //use GetLastError() to retrieve detailed information about error - EACC_ALLOC, //problem with memory allocation - EACC_FILECOMPATIBILITY, //file is corrupted - EACC_ENDOFFILE, //unexpected end of file occured - EACC_FILEVERSION, //file should be YAMN book format, but newer version that expected - EACC_FILESIZE, //file has wrong size + EACC_SYSTEM = 1, // use GetLastError() to retrieve detailed information about error + EACC_ALLOC, // problem with memory allocation + EACC_FILECOMPATIBILITY, // file is corrupted + EACC_ENDOFFILE, // unexpected end of file occured + EACC_FILEVERSION, // file should be YAMN book format, but newer version that expected + EACC_FILESIZE, // file has wrong size }; +// Status of account +// used in messages WM_YAMN_CHANGESTATUS +// used also in function GetStatus and SetStatus enum { - // Status of account - // used in messages WM_YAMN_CHANGESTATUS - // used also in function GetStatus and SetStatus - ACC_IDLE = 0, //account is IDLE (no work is performed with account) - ACC_FINDING, //DNS lookup for account - ACC_CONNECTING, //connecting in progress - ACC_LOGGING, //logging in progress - ACC_WORKING, //working - ACC_DISCONNECTING, //disconnecting from server + ACC_IDLE = 0, // account is IDLE (no work is performed with account) + ACC_FINDING, // DNS lookup for account + ACC_CONNECTING, // connecting in progress + ACC_LOGGING, // logging in progress + ACC_WORKING, // working + ACC_DISCONNECTING, // disconnecting from server }; -#define YAMN_ACC_MSG 0x00000002 // Shows dialog -#define YAMN_ACC_ICO 0x00000004 // Shows system tray icon (1) -#define YAMN_ACC_ICOB 0x00000008 // not used now, enables tray icon flashing (1) -#define YAMN_ACC_APP 0x00000010 // Runs application (1) -#define YAMN_ACC_POP 0x00000020 // Shows popup -#define YAMN_ACC_POPC 0x00000040 // Use custom colors in popup -#define YAMN_ACC_MSGP 0x00000080 // Persistant messgage. This means, when an situation occurs (e.g. new mail) and message is displayed, it is not destroyed when YAMN_ACC_MSG is not set -#define YAMN_ACC_KBN 0x00000100 // Use Keyboard notify -#define YAMN_ACC_CONT 0x00000200 // Use Contact notify -#define YAMN_ACC_CONTNICK 0x00000400 // Use Contact Nick replacement -#define YAMN_ACC_CONTNOEVENT 0x00000800 // Suppress event for this contact +#define YAMN_ACC_MSG 0x00000002 // Shows dialog +#define YAMN_ACC_ICO 0x00000004 // Shows system tray icon (1) +#define YAMN_ACC_ICOB 0x00000008 // not used now, enables tray icon flashing (1) +#define YAMN_ACC_APP 0x00000010 // Runs application (1) +#define YAMN_ACC_POP 0x00000020 // Shows popup +#define YAMN_ACC_POPC 0x00000040 // Use custom colors in popup +#define YAMN_ACC_MSGP 0x00000080 // Persistant messgage. This means, when an situation occurs (e.g. new mail) and message is displayed, it is not destroyed when YAMN_ACC_MSG is not set +#define YAMN_ACC_KBN 0x00000100 // Use Keyboard notify +#define YAMN_ACC_CONT 0x00000200 // Use Contact notify +#define YAMN_ACC_CONTNICK 0x00000400 // Use Contact Nick replacement +#define YAMN_ACC_CONTNOEVENT 0x00000800 // Suppress event for this contact struct YAMN_NOTIFICATION { - //(1) - usable only in newmail notification + // (1) - usable only in newmail notification DWORD Flags = 0; COLORREF PopupB = 0; @@ -82,9 +82,9 @@ struct CServer char *Passwd = nullptr; }; -// -//================================== ACCOUNT DEFINITION ================================== -// +// +// ================================== ACCOUNT DEFINITION ================================== +// #define WAIT_FINISH WAIT_OBJECT_0+1 @@ -232,69 +232,64 @@ struct SWriteGuard ///////////////////////////////////////////////////////////////////////////////////////// // CAccount - basic email account class +// YAMN account flags (set by user) +#define YAMN_ACC_ENA 0x00000001 // Enables account. If account is disabled, no countdown is performed +#define YAMN_ACC_POPN 0x00000002 // Shows one popup per one new mail or for N mails +#define YAMN_ACC_APOP 0x00000004 // Use APOP authentication +#define YAMN_ACC_SSL23 0x00000008 // Use SSLv2,3 +#define YAMN_ACC_NOTLS 0x00000010 // Don't try StartTLS (STLS) even available +#define YAMN_ACC_BODY 0x00000020 // Always retrieve body of the message + +// YAMN ability flags (set by plugin) +#define YAMN_ACC_BROWSE 0x00000001 // Can browse mails. On this account we can run mailbrowser window +#define YAMN_ACC_POPUP 0x00000002 // Popups of new mail belonging to this account can be showed + +// YAMN account status flags +#define YAMN_ACC_ST0 0x00000001 // Check (countdown) when Offline +#define YAMN_ACC_ST1 0x00000002 // Check (countdown) when Online +#define YAMN_ACC_ST2 0x00000004 // Check (countdown) when Away +#define YAMN_ACC_ST3 0x00000008 // Check (countdown) when Not available +#define YAMN_ACC_ST4 0x00000010 // Check (countdown) when Occupied +#define YAMN_ACC_ST5 0x00000020 // Check (countdown) when DND +#define YAMN_ACC_ST6 0x00000040 // Check (countdown) when Free for chat +#define YAMN_ACC_ST7 0x00000080 // Check (countdown) when Invisible + +#define YAMN_ACC_STARTA 0x00010000 // Check on start anyway +#define YAMN_ACC_STARTS 0x00020000 // Check on start regarding to status setting +#define YAMN_ACC_FORCE 0x00040000 // Check when "check new mail" item pressed (it is called forced checking) + struct CAccount : public MZeroedObject { - #define YAMN_ACCOUNTFILEVERSION 2 //version of standard file format (YAMN book file format) - // If changes are made in this structure, version is changed. // So then YAMN does not initialzie your structure, if version does not matches. + #define YAMN_ACCOUNTFILEVERSION 2 // version of standard file format (YAMN book file format) - BOOL AbleToWork; // This is set to TRUE by default. When it is needed to stop working on this account, YAMN sets this to zero. - - struct YAMN_PROTOPLUGIN *Plugin; // free access, because this member should not be changed. The same as YAMN_PLUGIN structure - - char *Name; // access only through AccountAccessSO - - CServer *Server; //access only through AccountAccessSO - - WORD Interval; //access only through AccountAccessSO - - // YAMN account flags (set by user) - #define YAMN_ACC_ENA 0x00000001 //Enables account. If account is disabled, no countdown is performed - #define YAMN_ACC_POPN 0x00000002 //Shows one popup per one new mail or for N mails - #define YAMN_ACC_APOP 0x00000004 //Use APOP authentication - #define YAMN_ACC_SSL23 0x00000008 //Use SSLv2,3 - #define YAMN_ACC_NOTLS 0x00000010 //Don't try StartTLS (STLS) even available - #define YAMN_ACC_BODY 0x00000020 //Always retrieve body of the message - DWORD Flags; //access only through AccountAccessSO - - // YAMN account flags (set by plugin) - #define YAMN_ACC_BROWSE 0x00000001 //Can browse mails. On this account we can run mailbrowser window - #define YAMN_ACC_POPUP 0x00000002 //Popups of new mail belonging to this account can be showed - DWORD AbilityFlags; - - // YAMN account status flags - #define YAMN_ACC_ST0 0x00000001 // Check (countdown) when Offline - #define YAMN_ACC_ST1 0x00000002 // Check (countdown) when Online - #define YAMN_ACC_ST2 0x00000004 // Check (countdown) when Away - #define YAMN_ACC_ST3 0x00000008 // Check (countdown) when Not available - #define YAMN_ACC_ST4 0x00000010 // Check (countdown) when Occupied - #define YAMN_ACC_ST5 0x00000020 // Check (countdown) when DND - #define YAMN_ACC_ST6 0x00000040 // Check (countdown) when Free for chat - #define YAMN_ACC_ST7 0x00000080 // Check (countdown) when Invisible + // This is set to TRUE by default. When it is needed to stop working on this account, YAMN sets this to zero. + BOOL AbleToWork; - #define YAMN_ACC_STARTA 0x00010000 // Check on start anyway - #define YAMN_ACC_STARTS 0x00020000 // Check on start regarding to status setting - #define YAMN_ACC_FORCE 0x00040000 // Check when "check new mail" item pressed (it is called forced checking) - DWORD StatusFlags; // access only through AccountAccessSO + struct YAMN_PROTOPLUGIN *Plugin; // free access, because this member should not be changed. The same as YAMN_PLUGIN structure - // Plugin flags. Use this DWORD if you want YAMN to store it to YAMN book file. You can set here any value - DWORD PluginFlags; + char *Name; // access only through AccountAccessSO + CServer *Server; // access only through AccountAccessSO + WORD Interval; // access only through AccountAccessSO + DWORD Flags; // access only through AccountAccessSO + DWORD AbilityFlags; // access only through AccountAccessSO + DWORD StatusFlags; // access only through AccountAccessSO - YAMN_NOTIFICATION NewMailN; //access only through AccountAccessSO - YAMN_NOTIFICATION NoNewMailN; //access only through AccountAccessSO - YAMN_NOTIFICATION BadConnectN; //access only through AccountAccessSO + YAMN_NOTIFICATION NewMailN; // access only through AccountAccessSO + YAMN_NOTIFICATION NoNewMailN; // access only through AccountAccessSO + YAMN_NOTIFICATION BadConnectN; // access only through AccountAccessSO - SYSTEMTIME LastChecked; //last check, access only through AccountAccessSO - SYSTEMTIME LastSChecked; //last check (successfull), access only through AccountAccessSO - SYSTEMTIME LastSynchronised; //last synchronisation (successfull), access only through AccountAccessSO - SYSTEMTIME LastMail; //last check when new mail detected, access only through AccountAccessSO + SYSTEMTIME LastChecked; // last check, access only through AccountAccessSO + SYSTEMTIME LastSChecked; // last check (successfull), access only through AccountAccessSO + SYSTEMTIME LastSynchronised; // last synchronisation (successfull), access only through AccountAccessSO + SYSTEMTIME LastMail; // last check when new mail detected, access only through AccountAccessSO - TCHAR Status[255]; //access only through GetStatusFcn() and SetStatusFcn() functions + TCHAR Status[255]; // access only through GetStatusFcn() and SetStatusFcn() functions - DWORD TimeLeft; //access only through AccountAccessSO + DWORD TimeLeft; // access only through AccountAccessSO - HANDLE Mails; //access only through MessagesAccessSO + HANDLE Mails; // access only through MessagesAccessSO // Account members are mostly the same, but there can be protocol (POP3,IMAP...) special features. // To use them, only inherit this class and add your own features. @@ -322,7 +317,7 @@ struct CAccount : public MZeroedObject // Use MsgsWaitToRead(),MsgsReadDone(),MsgsWaitToWrite(),MsgsWriteDone() synchronization functions SWMRG MessagesAccessSO; - //For clist contact notification + // For clist contact notification MCONTACT hContact; BOOL isCounting; diff --git a/protocols/YAMN/src/debug.cpp b/protocols/YAMN/src/debug.cpp index 65322366ab..92d5a0b3c4 100644 --- a/protocols/YAMN/src/debug.cpp +++ b/protocols/YAMN/src/debug.cpp @@ -11,19 +11,11 @@ #ifdef _DEBUG -//-------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------- - -wchar_t DebugUserDirectory[MAX_PATH] = L"."; -CRITICAL_SECTION FileAccessCS; - #ifdef DEBUG_COMM -wchar_t DebugCommFileName2[]=L"%s\\yamn-debug.comm.log"; HANDLE CommFile; #endif #ifdef DEBUG_DECODE -wchar_t DebugDecodeFileName2[]=L"%s\\yamn-debug.decode.log"; HANDLE DecodeFile; #endif @@ -32,80 +24,25 @@ HANDLE DecodeFile; void InitDebug() { -#if defined (DEBUG_COMM) || defined (DEBUG_DECODE) - wchar_t DebugFileName[MAX_PATH]; -#endif - InitializeCriticalSection(&FileAccessCS); - #ifdef DEBUG_COMM - mir_snwprintf(DebugFileName, DebugCommFileName2, DebugUserDirectory); - - CommFile=CreateFile(DebugFileName,GENERIC_WRITE,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,CREATE_ALWAYS,0,NULL); - DebugLog(CommFile,"Communication debug file created by %s\n",YAMN_VER); + CommFile = mir_createLog("YAMN_comm", L"", VARSW(L"%miranda_userdata%\\yamn-debug.comm.log"), 0); + mir_writeLogA(CommFile,"Communication debug file created by %s\n",YAMN_VER); #endif #ifdef DEBUG_DECODE - mir_snwprintf(DebugFileName, DebugDecodeFileName2, DebugUserDirectory); - - DecodeFile=CreateFile(DebugFileName,GENERIC_WRITE,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,CREATE_ALWAYS,0,NULL); - DebugLog(DecodeFile,"Decoding kernel debug file created by %s\n",YAMN_VER); + DecodeFile = mir_createLog("YAMN_comm", L"", VARSW(L"%miranda_userdata%\\yamn-debug.decode.log"), 0); + mir_writeLogA(DecodeFile, "Decoding kernel debug file created by %s\n", YAMN_VER); #endif } void UnInitDebug() { - DeleteCriticalSection(&FileAccessCS); #ifdef DEBUG_COMM - DebugLog(CommFile,"File is being closed normally."); - CloseHandle(CommFile); + mir_writeLogA(CommFile,"File is being closed normally."); #endif #ifdef DEBUG_DECODE - DebugLog(DecodeFile,"File is being closed normally."); - CloseHandle(DecodeFile); + mir_writeLogA(DecodeFile,"File is being closed normally."); #endif } - -void DebugLog(HANDLE File,const char *fmt,...) -{ - char *str; - char tids[32]; - va_list vararg; - int strsize; - DWORD Written; - - va_start(vararg,fmt); - str=(char *)malloc(strsize=65536); - mir_snprintf(tids, "[%x]",GetCurrentThreadId()); - while(mir_vsnprintf(str, strsize, fmt, vararg)==-1) - str=(char *)realloc(str,strsize+=65536); - va_end(vararg); - EnterCriticalSection(&FileAccessCS); - WriteFile(File,tids,(uint32_t)mir_strlen(tids),&Written,nullptr); - WriteFile(File,str,(uint32_t)mir_strlen(str),&Written,nullptr); - LeaveCriticalSection(&FileAccessCS); - free(str); -} - -void DebugLogW(HANDLE File,const wchar_t *fmt,...) -{ - wchar_t *str; - char tids[32]; - va_list vararg; - int strsize; - DWORD Written; - - va_start(vararg,fmt); - str=(wchar_t *)malloc((strsize=65536)*sizeof(wchar_t)); - mir_snprintf(tids, "[%x]",GetCurrentThreadId()); - while(mir_vsnwprintf(str, strsize, fmt, vararg)==-1) - str=(wchar_t *)realloc(str,(strsize+=65536)*sizeof(wchar_t)); - va_end(vararg); - EnterCriticalSection(&FileAccessCS); - WriteFile(File,tids,(uint32_t)mir_strlen(tids),&Written,nullptr); - WriteFile(File,str,(uint32_t)mir_wstrlen(str)*sizeof(wchar_t),&Written,nullptr); - LeaveCriticalSection(&FileAccessCS); - free(str); -} - #endif //ifdef DEBUG \ No newline at end of file diff --git a/protocols/YAMN/src/debug.h b/protocols/YAMN/src/debug.h index e2e8e3e506..3224faf406 100644 --- a/protocols/YAMN/src/debug.h +++ b/protocols/YAMN/src/debug.h @@ -3,21 +3,12 @@ #ifdef _DEBUG -//#define DEBUG_COMM //debug communiation to a file -//#define DEBUG_DECODE //debug header decoding to a file -//#define DEBUG_DECODECODEPAGE //add info about codepage used in conversion -//#define DEBUG_DECODEBASE64 //add info about base64 result -//#define DEBUG_DECODEQUOTED //add info about quoted printable result -//#define DEBUG_FILEREAD //debug file reading to message boxes -//#define DEBUG_FILEREADMESSAGES //debug file reading messages to message boxes - -void DebugLog(HANDLE,const char *fmt,...); -void DebugLogW(HANDLE File,const wchar_t *fmt,...); - -#ifdef DEBUG_SYNCHRO -// Used for synchronization debug -extern HANDLE SynchroFile; -#endif +//#define DEBUG_COMM // debug communication to a file +//#define DEBUG_DECODE // debug header decoding to a file +//#define DEBUG_DECODECODEPAGE // add info about codepage used in conversion +//#define DEBUG_DECODEQUOTED // add info about quoted printable result +//#define DEBUG_FILEREAD // debug file reading to message boxes +//#define DEBUG_FILEREADMESSAGES // debug file reading messages to message boxes #ifdef DEBUG_COMM // Used for communication debug @@ -30,21 +21,16 @@ extern HANDLE DecodeFile; #endif #if defined(DEBUG_FILEREAD) || defined(DEBUG_FILEREADMESSAGES) -uint32_t ReadStringFromMemory(char **Parser,char *End,char **StoreTo,char *DebugString); - -uint32_t ReadStringFromMemoryW(char **Parser,wchar_t *End,char **StoreTo,wchar_t *DebugString); - +uint32_t ReadStringFromMemory(char **Parser, char *End, char **StoreTo, char *DebugString); + +uint32_t ReadStringFromMemoryW(char **Parser, wchar_t *End, char **StoreTo, wchar_t *DebugString); + #else -uint32_t ReadStringFromMemory(char **Parser,char *End,char **StoreTo); - -uint32_t ReadStringFromMemoryW(wchar_t **Parser,wchar_t *End,wchar_t **StoreTo); +uint32_t ReadStringFromMemory(char **Parser, char *End, char **StoreTo); + +uint32_t ReadStringFromMemoryW(wchar_t **Parser, wchar_t *End, wchar_t **StoreTo); #endif -//#ifdef DEBUG_ACCOUNTS -//int GetAccounts(); -//void WriteAccounts(); -//#endif - #endif //YAMN_DEBUG #endif //_DEBUG_H diff --git a/protocols/YAMN/src/mails/decode.cpp b/protocols/YAMN/src/mails/decode.cpp index 8d8b9e7324..9356d12c43 100644 --- a/protocols/YAMN/src/mails/decode.cpp +++ b/protocols/YAMN/src/mails/decode.cpp @@ -188,7 +188,7 @@ int GetCharsetFromString(char *input, size_t size) *parser = 0; #ifdef DEBUG_DECODECODEPAGE - DebugLog(DecodeFile, "%s", pout); + mir_writeLogA(DecodeFile, "%s", pout); #endif for (int i = 0; i < CPLENALL; i++) { @@ -239,7 +239,7 @@ int DecodeQuotedPrintable(char *Src, char *Dst, int DstLen, BOOL isQ) { #ifdef DEBUG_DECODEQUOTED char *DstTemp = Dst; - DebugLog(DecodeFile, "%s", Src); + mir_writeLogA(DecodeFile, "%s", Src); #endif for (auto *Limit = Dst + DstLen; *Src != 0 && Dst < Limit; Src++) { @@ -279,7 +279,7 @@ int DecodeQuotedPrintable(char *Src, char *Dst, int DstLen, BOOL isQ) *Dst = 0; #ifdef DEBUG_DECODEQUOTED - DebugLog(DecodeFile, "%s", DstTemp); + mir_writeLogA(DecodeFile, "%s", DstTemp); #endif return 1; } @@ -304,7 +304,7 @@ int ConvertStringToUnicode(char *stream, unsigned int cp, wchar_t **out) cp = CP_ACP; #ifdef DEBUG_DECODECODEPAGE - DebugLog(DecodeFile, "%d", cp); + mir_writeLogA(DecodeFile, "%d", cp); #endif for (Index = 0; Index < sizeof(CodePagesZeroFlags) / sizeof(CodePagesZeroFlags[0]); Index++) diff --git a/protocols/YAMN/src/mails/mime.cpp b/protocols/YAMN/src/mails/mime.cpp index cc4261d236..87f863c2eb 100644 --- a/protocols/YAMN/src/mails/mime.cpp +++ b/protocols/YAMN/src/mails/mime.cpp @@ -209,55 +209,55 @@ void ExtractShortHeader(CMimeItem *items, CShortHeader *head) if (items->value == nullptr) continue; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif ExtractAddressFromLine(items->value, &head->From, &head->FromNick); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif } else if (0 == _strnicmp(items->name, "Return-Path", 11)) { if (items->value == nullptr) continue; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif ExtractAddressFromLine(items->value, &head->ReturnPath, &head->ReturnPathNick); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif } else if (0 == _strnicmp(items->name, "Subject", 7)) { if (items->value == nullptr) continue; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif ExtractStringFromLine(items->value, &head->Subject); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif } else if (0 == _strnicmp(items->name, "Body", 4)) { if (items->value == nullptr) continue; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif ExtractStringFromLine(items->value, &head->Body); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif } else if (0 == _strnicmp(items->name, "Date", 4)) { if (items->value == nullptr) continue; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif ExtractStringFromLine(items->value, &head->Date); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif } else if (0 == _strnicmp(items->name, "Content-Type", 12)) { @@ -266,11 +266,11 @@ void ExtractShortHeader(CMimeItem *items, CShortHeader *head) char *ContentType = nullptr, *CharSetStr; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif ExtractStringFromLine(items->value, &ContentType); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif ToLower(ContentType); if (nullptr != (CharSetStr = ExtractFromContentType(ContentType, "charset="))) { @@ -283,7 +283,7 @@ void ExtractShortHeader(CMimeItem *items, CShortHeader *head) if (items->value == nullptr) continue; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif if (head->Priority != -1) { if (0 == strncmp(items->value, "low", 3)) @@ -294,19 +294,19 @@ void ExtractShortHeader(CMimeItem *items, CShortHeader *head) head->Priority = 1; } #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif } else if (0 == _strnicmp(items->name, "X-Priority", 10)) { if (items->value == nullptr) continue; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, ""); + mir_writeLogA(DecodeFile, ""); #endif if ((*items->value >= '1') && (*items->value <= '5')) head->Priority = *items->value - '0'; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif } @@ -387,7 +387,7 @@ void ExtractHeader(CMimeItem *items, int &CP, CHeader *head) CShortHeader ShortHeader = {}; ShortHeader.Priority = ShortHeader.CP = -1; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif ExtractShortHeader(items, &ShortHeader); @@ -395,61 +395,61 @@ void ExtractHeader(CMimeItem *items, int &CP, CHeader *head) CP = ShortHeader.CP == -1 ? CP : ShortHeader.CP; #ifdef DEBUG_DECODE if (NULL != ShortHeader.From) - DebugLog(DecodeFile, "%s%s%s%s%s%s%s%s%s%s%s\n"); - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "%s\n"); + mir_writeLogA(DecodeFile, "\n"); #endif head->wszFrom = ConvertCodedStringToUnicode(ShortHeader.From, CP, MIME_PLAIN); #ifdef DEBUG_DECODE if (NULL != head->From) - DebugLogW(DecodeFile, L"%s\n", head->From); + mir_writeLogW(DecodeFile, L"%s\n", head->From); #endif head->wszFromNick = ConvertCodedStringToUnicode(ShortHeader.FromNick, CP, MIME_MAIL); #ifdef DEBUG_DECODE if (NULL != head->FromNick) - DebugLogW(DecodeFile, L"%s\n", head->FromNick); + mir_writeLogW(DecodeFile, L"%s\n", head->FromNick); #endif head->wszReturnPath = ConvertCodedStringToUnicode(ShortHeader.ReturnPath, CP, MIME_PLAIN); #ifdef DEBUG_DECODE if (NULL != head->ReturnPath) - DebugLogW(DecodeFile, L"%s\n", head->ReturnPath); + mir_writeLogW(DecodeFile, L"%s\n", head->ReturnPath); #endif head->wszReturnPathNick = ConvertCodedStringToUnicode(ShortHeader.ReturnPathNick, CP, MIME_MAIL); #ifdef DEBUG_DECODE if (NULL != head->ReturnPathNick) - DebugLogW(DecodeFile, L"%s\n", head->ReturnPathNick); + mir_writeLogW(DecodeFile, L"%s\n", head->ReturnPathNick); #endif head->wszSubject = ConvertCodedStringToUnicode(ShortHeader.Subject, CP, MIME_PLAIN); #ifdef DEBUG_DECODE if (NULL != head->Subject) - DebugLogW(DecodeFile, L"%s\n", head->Subject); + mir_writeLogW(DecodeFile, L"%s\n", head->Subject); #endif head->wszDate = ConvertCodedStringToUnicode(ShortHeader.Date, CP, MIME_PLAIN); #ifdef DEBUG_DECODE if (NULL != head->Date) - DebugLogW(DecodeFile, L"%s\n", head->Date); + mir_writeLogW(DecodeFile, L"%s\n", head->Date); #endif head->wszBody = ConvertCodedStringToUnicode(ShortHeader.Body, CP, MIME_PLAIN); #ifdef DEBUG_DECODE if (NULL != head->Body) - DebugLogW(DecodeFile, L"%s\n", head->Body); + mir_writeLogW(DecodeFile, L"%s\n", head->Body); #endif #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif DeleteShortHeaderContent(&ShortHeader); diff --git a/protocols/YAMN/src/proto/netlib.cpp b/protocols/YAMN/src/proto/netlib.cpp index 21c1f771fa..4354b6e9be 100644 --- a/protocols/YAMN/src/proto/netlib.cpp +++ b/protocols/YAMN/src/proto/netlib.cpp @@ -33,7 +33,7 @@ void __stdcall SSL_DebugLog(const char *fmt, ...) HANDLE RegisterNLClient(char *name) { #ifdef DEBUG_COMM - DebugLog(CommFile, ""); + mir_writeLogA(CommFile, ""); #endif NETLIBUSER nlu = {}; @@ -44,9 +44,9 @@ HANDLE RegisterNLClient(char *name) #ifdef DEBUG_COMM if (NULL == hNetlibUser) - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); else - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif return hNetlibUser; } @@ -84,7 +84,7 @@ void CNLClient::Connect(const char *servername, const int port) isTLSed = false; #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif try { if (nullptr == (hConnection = Netlib_OpenConnection(hNetlibUser, servername, port))) { @@ -92,13 +92,13 @@ void CNLClient::Connect(const char *servername, const int port) throw NetworkError = (uint32_t)ENL_CONNECT; } #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif return; } catch (...) { #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif throw; } @@ -120,7 +120,7 @@ void CNLClient::Send(const char *query) if (hConnection == nullptr) return; #ifdef DEBUG_COMM - DebugLog(CommFile, "%s", query); + mir_writeLogA(CommFile, "%s", query); #endif try { if ((SOCKET_ERROR == (Sent = LocalNetlib_Send(hConnection, query, (int)mir_strlen(query), MSG_DUMPASTEXT))) || Sent != (unsigned int)mir_strlen(query)) { @@ -128,12 +128,12 @@ void CNLClient::Send(const char *query) throw NetworkError = (uint32_t)ENL_SEND; } #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif } catch (...) { #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif throw; } @@ -161,7 +161,7 @@ int CNLClient::LocalNetlib_Recv(HNETLIBCONN hConn, char *buf, int len, int flags char *CNLClient::Recv(char *buf, int buflen) { #ifdef DEBUG_COMM - DebugLog(CommFile, ""); + mir_writeLogA(CommFile, ""); #endif try { if (buf == nullptr) @@ -197,14 +197,14 @@ char *CNLClient::Recv(char *buf, int buflen) } #ifdef DEBUG_COMM *(buf + Rcv) = 0; //end the buffer to write it to file - DebugLog(CommFile, "%s", buf); - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "%s", buf); + mir_writeLogA(CommFile, "\n"); #endif return(buf); } catch (...) { #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif throw; } @@ -221,12 +221,12 @@ void CNLClient::Disconnect() void UnregisterNLClient() { #ifdef DEBUG_COMM - DebugLog(CommFile, ""); + mir_writeLogA(CommFile, ""); #endif Netlib_CloseHandle(hNetlibUser); hNetlibUser = nullptr; #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif } diff --git a/protocols/YAMN/src/proto/pop3/pop3.cpp b/protocols/YAMN/src/proto/pop3/pop3.cpp index 8d24a5218c..31bb24314f 100644 --- a/protocols/YAMN/src/proto/pop3/pop3.cpp +++ b/protocols/YAMN/src/proto/pop3/pop3.cpp @@ -41,7 +41,7 @@ char *CPop3Client::Connect(const char *servername, const int port, BOOL UseSSL, NetClient = new CNLClient; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "Connect:servername: %s port:%d\n", servername, port); + mir_writeLogA(DecodeFile, "Connect:servername: %s port:%d\n", servername, port); #endif POP3Error = EPOP3_CONNECT; NetClient->Connect(servername, port); diff --git a/protocols/YAMN/src/proto/pop3/pop3comm.cpp b/protocols/YAMN/src/proto/pop3/pop3comm.cpp index c734847ff5..89c5c4e359 100644 --- a/protocols/YAMN/src/proto/pop3/pop3comm.cpp +++ b/protocols/YAMN/src/proto/pop3/pop3comm.cpp @@ -583,7 +583,7 @@ void MIR_CDECL SynchroPOP3(CheckParam *WhichTemp) TranslateHeaderFcn(Temp, MyClient->NetClient->Rcv - (Temp - DataRX), &MsgQueuePtr->MailData->TranslatedHeader); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif MsgQueuePtr->Flags |= YAMN_MSG_NORMALNEW; if (autoretr) @@ -655,7 +655,7 @@ void MIR_CDECL SynchroPOP3(CheckParam *WhichTemp) if (ActualAccount->Client.POP3Error == EPOP3_STOPPED) ActualAccount->SystemError = EACC_STOPPED; #ifdef DEBUG_COMM - DebugLog(CommFile, "ERROR: %x\n", ErrorCode); + mir_writeLogA(CommFile, "ERROR: %x\n", ErrorCode); #endif { SWriteGuard swm(ActualAccount->MessagesAccessSO); @@ -684,7 +684,7 @@ void MIR_CDECL SynchroPOP3(CheckParam *WhichTemp) } #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif } @@ -743,7 +743,7 @@ void __cdecl DeleteMailsPOP3(void *param) try { SetContactStatus(ActualAccount, ID_STATUS_OCCUPIED); #ifdef DEBUG_COMM - DebugLog(CommFile, "<--------Communication-------->\n"); + mir_writeLogA(CommFile, "<--------Communication-------->\n"); #endif if ((MyClient->NetClient == nullptr) || !MyClient->NetClient->Connected()) { SetStatusFcn(ActualAccount, TranslateT("Connecting to server")); @@ -787,7 +787,7 @@ void __cdecl DeleteMailsPOP3(void *param) } #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "<--------Deleting requested mails-------->\n"); + mir_writeLogA(DecodeFile, "<--------Deleting requested mails-------->\n"); #endif if (POP3_DELETEFROMCHECK != POP3PluginParam) // We do not need to get mails on server as we have already it from check function { @@ -796,13 +796,13 @@ void __cdecl DeleteMailsPOP3(void *param) char *DataRX = MyClient->Stat(); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif ExtractStat(DataRX, &mboxsize, &msgs); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%d\n", mboxsize); - DebugLog(DecodeFile, "%d\n", msgs); - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "%d\n", mboxsize); + mir_writeLogA(DecodeFile, "%d\n", msgs); + mir_writeLogA(DecodeFile, "\n"); #endif if (DataRX != nullptr) free(DataRX); @@ -822,12 +822,12 @@ void __cdecl DeleteMailsPOP3(void *param) if (msgs) { #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif DataRX = MyClient->Uidl(); ExtractUIDL(DataRX, MyClient->NetClient->Rcv, NewMails); #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif if (DataRX != nullptr) free(DataRX); @@ -894,7 +894,7 @@ void __cdecl DeleteMailsPOP3(void *param) } #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif // TODO: now, we have in NewMails new mails. If NewMails is not NULL, we found some new mails, so Checking for new mail should be performed @@ -931,7 +931,7 @@ void __cdecl DeleteMailsPOP3(void *param) if (ActualAccount->Client.POP3Error == EPOP3_STOPPED) ActualAccount->SystemError = EACC_STOPPED; #ifdef DEBUG_COMM - DebugLog(CommFile, "ERROR %x\n", ErrorCode); + mir_writeLogA(CommFile, "ERROR %x\n", ErrorCode); #endif switch (ActualAccount->SystemError) { @@ -951,7 +951,7 @@ void __cdecl DeleteMailsPOP3(void *param) DeleteMessagesToEndFcn(ActualAccount, DeleteMails); #ifdef DEBUG_COMM - DebugLog(CommFile, "\n"); + mir_writeLogA(CommFile, "\n"); #endif // WriteAccounts(); @@ -989,14 +989,14 @@ void ExtractMail(char *stream, int len, HYAMNMAIL queue) if (DOTLINE(finder + 1)) // at the end of stream break; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif SkipSpaces(finder); // jump whitespace if (1 != sscanf(finder, "%d", &msgnr)) throw (uint32_t)EPOP3_UIDL; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%d\n", msgnr); + mir_writeLogA(DecodeFile, "%d\n", msgnr); #endif SkipNonSpaces(finder); @@ -1009,8 +1009,8 @@ void ExtractMail(char *stream, int len, HYAMNMAIL queue) queueptr->MailData->Body[i] = 0; // ends string queueptr->Number = msgnr; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%s\n", queueptr->MailData->Body); - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "%s\n", queueptr->MailData->Body); + mir_writeLogA(DecodeFile, "\n"); #endif queueptr = queueptr->Next; while (!ENDLINE(finder)) finder++; @@ -1032,13 +1032,13 @@ void ExtractUIDL(char *stream, int len, HYAMNMAIL queue) if (DOTLINE(finder + 1)) // at the end of stream break; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "\n"); #endif SkipSpaces(finder); if (1 != sscanf(finder, "%d", &msgnr)) throw (uint32_t)EPOP3_UIDL; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%d\n", msgnr); + mir_writeLogA(DecodeFile, "%d\n", msgnr); #endif // for (i=1,queueptr=queue;(queueptr->Next != NULL) && (iNext,i++); // if (i != msgnr) @@ -1053,8 +1053,8 @@ void ExtractUIDL(char *stream, int len, HYAMNMAIL queue) queueptr->ID[i] = 0; // ends string queueptr->Number = msgnr; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%s\n", queueptr->ID); - DebugLog(DecodeFile, "\n"); + mir_writeLogA(DecodeFile, "%s\n", queueptr->ID); + mir_writeLogA(DecodeFile, "\n"); #endif queueptr = queueptr->Next; while (!ENDLINE(finder)) finder++; @@ -1076,13 +1076,13 @@ void ExtractList(char *stream, int len, HYAMNMAIL queue) if (DOTLINE(finder + 1)) // at the end of stream break; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "\n", NULL, 0); + mir_writeLogA(DecodeFile, "\n", NULL, 0); #endif SkipSpaces(finder); if (1 != sscanf(finder, "%d", &msgnr)) // message nr. throw (uint32_t)EPOP3_LIST; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%d\n", msgnr); + mir_writeLogA(DecodeFile, "%d\n", msgnr); #endif for (i = 1, queueptr = queue; (queueptr->Next != nullptr) && (i < msgnr); queueptr = queueptr->Next, i++); @@ -1095,7 +1095,7 @@ void ExtractList(char *stream, int len, HYAMNMAIL queue) if (1 != sscanf(finder, "%u", &queueptr->MailData->Size)) throw (uint32_t)EPOP3_LIST; #ifdef DEBUG_DECODE - DebugLog(DecodeFile, "%d\n", queueptr->MailData->Size); + mir_writeLogA(DecodeFile, "%d\n", queueptr->MailData->Size); #endif while (!ENDLINE(finder)) finder++; } -- cgit v1.2.3