#include "stdafx.h" #include #include "PacketHandler.h" #include "HandlerFromAccountDBPServer.h" #include #include "Sessions/AccountDBProxySession.h" #define SX_HANDLER_INFO_EOR() { MAKEWORD(0, 0), PHASE_NOACTION, (PH_fnHandler)NULL } #define SX_HANDLER_INFO( c, p, accptablePHASE ) \ { MAKEWORD(c, p), accptablePHASE, (PH_fnHandler)&HandlerFromAccountDBPServer::On##p } sPACKET_HANDLER_INFO* HandlerFromAccountDBPServer::GetHandlerInfo() { static sPACKET_HANDLER_INFO s_pHandlerInfo[] = { // SX_HANDLER_INFO(SX_CONNECTION, SX_CONNECTION_REQ_SERVER_INFO_ACK, PHASE_UNLIMITED), SX_HANDLER_INFO(SX_CONNECTION, SX_CONNECTION_REQ_SERVER_INFO_CMD, PHASE_UNLIMITED), SX_HANDLER_INFO_EOR(), }; return s_pHandlerInfo; }; VOID HandlerFromAccountDBPServer::RegisterHandler_ALL( PACKET_HANDLER_DELEGATOR pInstance ) { //BOOL bResult = pInstance->RegisterHandler_( GetHandlerInfo() ); // } #include HandlerFromAccountDBPServer_IMPL(SX_CONNECTION_REQ_SERVER_INFO_ACK) { __TOUCHED((pServerSession, pMsg, wSize)); MSG_SX_CONNECTION_REQ_SERVER_INFO_ACK* pMsgACK = (MSG_SX_CONNECTION_REQ_SERVER_INFO_ACK*)pMsg; DWORD dwCounts = pMsgACK->m_dwNumberOfServerInfo; if( MSG_SX_CONNECTION_REQ_SERVER_INFO_ACK::_MAX_SERVERINFO_ARRAY_NUM < dwCounts ) { MessageOut( eCRITICAL_LOG, _T("¼­¹ö Á¤º¸°¡ ÀÌ»óÇÕ´Ï´Ù. ¾Æ´Ï¸é ÁøÂ¥·Î 100°³ ³Ñ´Â ¼­¹ö¼ö?") ); return; } MessageOut( eCRITICAL_LOG, _T("Number of Server Info: %u"), dwCounts ); sSERVERLISTFROMDB_ARGS args; args.m_SVR_LIST = pMsgACK; ServerListFromDB svrFromDB; svrFromDB.Init( &args ); ServerTreeINFO* pINFO = NULL; svrFromDB.Load( NULL, 0, pINFO, TRUE ); //ServerInfoManager::AddServerInfo( pMsgACK->m_ServerInfo, dwCounts ); } HandlerFromAccountDBPServer_IMPL(SX_CONNECTION_REQ_SERVER_INFO_CMD) { __TOUCHED((pServerSession, pMsg, wSize)); SolarAuthServer* pSolarAuth = SolarAuthServer::GetMainFrame(); MessageOut( eCRITICAL_LOG, _T("[COMPLETE] Server Information Received") ); pSolarAuth->StartServer(); }