#include "StdAfx.h" #include ".\packethandler.h" #include "Handler_AT.h" #include "Handler_SA.h" #include #include #include #include "UpdateServerSession.h" #include "UpdateToolSession.h" PacketHandler::PacketHandler(void) { m_pFunctionMapAT = new FunctionMap; m_pFunctionMapSA = new FunctionMap; RegisterHandler(); } PacketHandler::~PacketHandler(void) { if( m_pFunctionMapAT ) { m_pFunctionMapAT->Release(); delete m_pFunctionMapAT; } m_pFunctionMapAT = NULL; if( m_pFunctionMapSA ) { m_pFunctionMapSA->Release(); delete m_pFunctionMapSA; } m_pFunctionMapSA = NULL; } //Çڵ鷯¸¦ µî·Ï½ÃŲ´Ù. ÀÌ Å¬·¡½º°¡ »ý¼ºµÉ¶§.. Çϵµ·Ï ÇÏÀÚ. BOOL PacketHandler::RegisterHandler() { RegisterHandler_AT(); RegisterHandler_SA(); return TRUE; } BOOL PacketHandler::ParserPacket_AT( UpdateToolSession* pSession, MSG_BASE* pMsg, int nSize ) { if( !pMsg ) return FALSE; FUNC_AT* pFunc = (FUNC_AT*)m_pFunctionMapAT->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol) ); if( !pFunc ) return FALSE; //ÇÔ¼ö ½ÇÇà pFunc->m_fnHandler( pSession, pMsg, nSize ); return TRUE; } BOOL PacketHandler::ParserPacket_SA( UpdateServerSession* pSession, MSG_BASE* pMsg, int nSize ) { if( !pMsg ) return FALSE; FUNC_SA* pFunc = (FUNC_SA*)m_pFunctionMapSA->Find( MAKEWORD( pMsg->m_byCategory, pMsg->m_byProtocol ) ); if( !pFunc ) return FALSE; //ÇÔ¼ö ½ÇÇà pFunc->m_fnHandler( pSession, pMsg, nSize ); return TRUE; } BOOL PacketHandler::RegisterHandler_AT() { //Agent Server Auth AddHandler_AT( MO_OPERATION, MO_RTTG_PATCHRESULT_ANS, Handler_AT::OnHandler_MSG_MO_RTTG_PATCHRESULT_ANS); return TRUE; } BOOL PacketHandler::RegisterHandler_SA() { //Agent Server Auth AddHandler_SA( SA_PATCH, SA_PATCH_EXECUTE_SYN, Handler_SA::OnHandler_MSG_SA_PATCH_EXECUTE_SYN); AddHandler_SA( SA_SERVER, SA_SERVER_AUTH_ACK, Handler_SA::OnHandler_MSG_SA_SERVER_AUTH_ACK); AddHandler_SA( SA_SERVER, SA_SERVER_EXECUTE_SYN, Handler_SA::OnHandler_MSG_SA_SERVER_EXECUTE_SYN); AddHandler_SA( SA_SERVER, SA_SERVER_TYPE_ACK, Handler_SA::OnHandler_MSG_SA_SERVER_TYPE_ACK); AddHandler_SA( SA_CHECK, SA_CHECK_LOGFILE_SYN, Handler_SA::OnHandler_MSG_SA_CHECK_LOGFILE_SYN ); AddHandler_SA( SA_SERVER, SA_SERVER_FORCE_DISCONNECT_SYN, Handler_SA::OnHandler_MSG_SA_SERVER_FORCE_DISCONNECT_SYN ); AddHandler_SA( SA_SERVER, SA_SERVER_BACKUP_SYN, Handler_SA::OnHandler_MSG_SA_SERVER_BACKUP_SYN ); AddHandler_SA( SA_SERVER, SA_SERVER_RESTORE_SYN, Handler_SA::OnHandler_MSG_SA_SERVER_RESTORE_SYN ); //Notice AddHandler_SA( SA_SERVER, SA_SERVER_NOTICE_SYN, Handler_SA::OnHandler_MSG_SA_SERVER_NOTICE_SYN ); AddHandler_SA( SA_SERVER, SA_SERVER_SEND_NOTICE_SYN, Handler_SA::OnHandler_MSG_SA_SERVER_SEND_NOTICE_SYN ); #ifdef __20080312__SOLARAUTH_SERVER_PATCH AddHandler_SA( SA_SERVER, SA_SOLARSCRIPT_BACKUP_SYN, Handler_SA::OnHandler_MSG_SA_SOLARSCRIPT_BACKUP_SYN ); AddHandler_SA( SA_SERVER, SA_SOLARSCRIPT_RESTORE_SYN, Handler_SA::OnHandler_MSG_SA_SOLARSCRIPT_RESTORE_SYN ); AddHandler_SA( SA_SERVER, SA_SOLARSCRIPT_EXECUTE_SYN, Handler_SA::OnHandler_MSG_SA_SOLARSCRIPT_EXECUTE_SYN ); #endif //__20080312__SOLARAUTH_SERVER_PATCH #ifdef _NA_006543_20130318_HEARTBEAT AddHandler_SA(SA_CHECK, SA_CHECK_HEARTBEAT, Handler_SA::OnHandler_MSG_SA_CHECK_HEARTBEAT_ACK); #endif // _NA_006543_20130318_HEARTBEAT return TRUE; } BOOL PacketHandler::AddHandler_AT( BYTE byCategory, BYTE byMsgType, fnToolHandler pHandler ) { FUNC_AT* pFuncAT = new FUNC_AT; pFuncAT->m_wFuncKey = MAKEWORD( byCategory, byMsgType ); pFuncAT->m_fnHandler = pHandler; return m_pFunctionMapAT->Add( pFuncAT ); } BOOL PacketHandler::AddHandler_SA( BYTE byCategory, BYTE byMsgType, fnHandler pHandler ) { FUNC_SA* pFuncAT = new FUNC_SA; pFuncAT->m_wFuncKey = MAKEWORD( byCategory, byMsgType ); pFuncAT->m_fnHandler = pHandler; return m_pFunctionMapSA->Add( pFuncAT ); }