#include "stdafx.h" #include "SecureLog.h" #include "PacketStruct_ServerCommon.h" #include const WORD s_wNTF_HeaderLen = sizeof(MSG_SERVERCOMMON_SECURE_LOG_NTF)-1; SecureLog::~SecureLog() { FILE_LOG.QueuedStream = (TCHAR*)((BYTE*)FILE_LOG.QueuedStream - s_wNTF_HeaderLen); CSunLog::~CSunLog(); } BOOL SecureLog::Init( const BYTE byLogOption, const BYTE byLogLevel, const TCHAR* pszFilePath, const TCHAR* pszFileName, BOOL bUseSolarLog ) { BOOL bRet = CSunLog::Init( byLogOption, byLogLevel, pszFilePath, pszFileName, bUseSolarLog ); if( !bRet ) return bRet; FILE_LOG.QueuedStream = (TCHAR*)((BYTE*)FILE_LOG.QueuedStream + s_wNTF_HeaderLen); return TRUE; } BOOL SecureLog::WriteMessage_Network( const CSunLog* pSunLog, const TCHAR* pMsg, va_list vlist ) { const DWORD c_NetLogDataSize = 1023; CSunLog::sFILE_LOG& wLogOff = (CSunLog::sFILE_LOG&)((CSunLog*)pSunLog)->GetFILE_LOG(); INT iWritten = _vsntprintf( wLogOff.QueuedStream + wLogOff.Written, c_NetLogDataSize - wLogOff.Written, pMsg, vlist ); if( iWritten < 0 ) return FALSE; wLogOff.Written += (DWORD)iWritten; // File¿¡ ±â·ÏÇÏ´Â °Í°ú´Â ´Ù¸£°Ô '\r' '\n'Àº ¹«½ÃÇϵµ·Ï ¼³Á¤ÇÑ´Ù. if( wLogOff.Written > 1 ) //2 { if( _T('\n') == wLogOff.QueuedStream[wLogOff.Written-1] ) wLogOff.Written --; else if( _T('\r') == wLogOff.QueuedStream[wLogOff.Written-2] ) wLogOff.Written -= 2; } wLogOff.QueuedStream[wLogOff.Written++] = _T('\r'); wLogOff.QueuedStream[wLogOff.Written++] = _T('\n'); SecureLog* pSecureLog = (SecureLog*)pSunLog; if( pSecureLog && pSecureLog->m_pSession ) { NetworkObject* pSession = pSecureLog->m_pSession; // ÆÐŶ ÇØ´õ ¹öÆÛ Æ÷ÀÎÅ͸¦ ¾ò´Â´Ù. BYTE* pHeaderPtr = (BYTE*)wLogOff.QueuedStream - s_wNTF_HeaderLen; // [20061206_xx:xx:xx] // | CHAR // [ 2 0 0 6 1 2 0 6 _ // | TCHAR MSG_SERVERCOMMON_SECURE_LOG_NTF* pMsgNTF = (MSG_SERVERCOMMON_SECURE_LOG_NTF*)pHeaderPtr; // º¸³»±â À§ÇÑ ¹öÆÛ´Â ·Î±× ¹öÆÛÀ̸ç, ³¯Â¥ ±â·ÏµÈ °ø°£À» Àç»ç¿ëÇÑ´Ù. CopyMemory( pMsgNTF, &(pSecureLog->m_APPEND_LOG_INFO), s_wNTF_HeaderLen ); // m_dwKey´Â ¿¹¾àµÈ °ø°£À¸·Î Ȱ¿ëÇÏÀÚ. pMsgNTF->m_byCategory = SERVERCOMMON; pMsgNTF->m_byProtocol = SERVERCOMMON_SECURE_LOG_NTF; wLogOff.Written -= 2; wLogOff.QueuedStream[wLogOff.Written++] = _T('\0'); pMsgNTF->m_wLength = (WORD)(wLogOff.Written*sizeof(TCHAR)); // NetworkObject¿¡ ¹®Á¦°¡ ÀÖ´ÂÁö ¾ø´ÂÁö... ÀÌ°É ¾Ë ¹æ¹ýÀÌ Àִ°¡? pSession->Send( (BYTE*)pMsgNTF, pMsgNTF->m_wLength + s_wNTF_HeaderLen ); } // Çѹø ¾²°í ´Ù½Ã ÃʱâÈ­ ½ÃÄѹö¸°´Ù. wLogOff.Written = 0; return TRUE; }