#include "stdafx.h" #include "UserIDTable.h" #include "UIDAgentDispatch.h" #include "SendAgentPacket.h" #include #include #include #include #include #include // ÀϺ» ¿ÀÇ º£Å¸¿ë °ú±Ý ŸÀÔ (2005-09-20 zun!) bool CUIDAgentDispatch::ProcessBillingJapan(PktUUT* lpPktUUT) { unsigned char Cmd = lpPktUUT->m_cCmd; unsigned long ServerID = lpPktUUT->m_dwServerID; unsigned long SessionID = lpPktUUT->m_dwSessionID; unsigned long UserID = lpPktUUT->m_dwUserID; unsigned long CharID = lpPktUUT->m_dwCharID; char *AccountName = lpPktUUT->m_strAccount; IN_ADDR& IPAddress = lpPktUUT->m_IPAddress; switch(Cmd) { case PktUUT::UpdateUIDTableUserLogin: { CPerformanceInstrument userLogin("UserLogin"); CAutoInstrument autoInstrument(userLogin); unsigned long dwReturnedFlag = 0; if (false == DBComponent::BillingDB::USPJapanUserLoginToAuth(CDBSingleObject::GetInstance(), AccountName, UserID, 0, inet_ntoa(IPAddress), GetGroup(), &dwReturnedFlag)) { ERRLOG6(g_Log, "USPJapanUserLoginToAuth(User Login) È£Ãâ ½ÇÆÐ- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, IP: %s, ErrMsg: %s", UserID, AccountName, ServerID, Cmd, inet_ntoa(IPAddress), CDBSingleObject::GetInstance().GetErrorString()); // Flag 4 -> '¼­¹ö¿¡¼­ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.' AgentSendPacket::SendUpdateUIDTable(GetGroup(), Cmd, UserID, 4, 0, 0, 'N', 0, 0); return true; } if (0 != dwReturnedFlag) { // Flag 20 -> Áߺ¹ ·Î±×ÀÎ ¿¡·¯ AgentSendPacket::SendUpdateUIDTable(GetGroup(), Cmd, UserID, 20, 0, 0, 'N', 0, 0); return true; } DETLOG5(g_Log, "À¯Àú ·Î±×ÀÎ- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, IP: %s", UserID, AccountName, ServerID, Cmd, inet_ntoa(IPAddress)); // ÀÎÁõ¼­¹ö·Î ·Î±×ÀÎ ¼º°ø AgentSendPacket::SendUpdateUIDTable(GetGroup(), Cmd, UserID, 0, 0, 0, 'N', 0, 0); } break; case PktUUT::UpdateUIDTableCharLogin: { CPerformanceInstrument charLogin("CharLogin"); CAutoInstrument autoInstrument(charLogin); unsigned long dwReturnedFlag = 0; if (false == DBComponent::BillingDB::USPJapanUserLoginToZone(CDBSingleObject::GetInstance(), AccountName, UserID, 0, inet_ntoa(IPAddress), GetGroup(), &dwReturnedFlag)) { ERRLOG6(g_Log, "USPJapanUserLoginToZone(Char Login) È£Ãâ ½ÇÆÐ- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, IP: %s, ErrMsg: %s", UserID, AccountName, ServerID, Cmd, inet_ntoa(IPAddress), CDBSingleObject::GetInstance().GetErrorString()); AgentSendPacket::SendUpdateUIDTable(GetGroup(), Cmd, UserID, 4, 0, 0, 'N', 0, 0); return true; } if (0 != dwReturnedFlag) { AgentSendPacket::SendUpdateUIDTable(GetGroup(), Cmd, UserID, 20, 0, 0, 'N', 0, 0); return true; } DETLOG5(g_Log, "ij¸¯ÅÍ ·Î±×ÀÎ- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, IP: %s", UserID, AccountName, ServerID, Cmd, inet_ntoa(IPAddress)); // °ÔÀÓ¼­¹ö·Î ·Î±×ÀÎ ¼º°ø AgentSendPacket::SendUpdateUIDTable(GetGroup(), Cmd, UserID, 0, 0, 0, 'N', 0, 0); } break; case PktUUT::UpdateUIDTableUserLogout: case PktUUT::UpdateUIDTableCharLogout: { CPerformanceInstrument logout("Logout"); CAutoInstrument autoInstrument(logout); unsigned long dwReturnedFlag = 0; if (false == DBComponent::BillingDB::USPJapanUserLogOut(CDBSingleObject::GetInstance(), AccountName, &dwReturnedFlag)) { ERRLOG5(g_Log, "USPJapanUserLogOut È£Ãâ ½ÇÆÐ- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, ErrMsg: %s", UserID, AccountName, ServerID, Cmd, CDBSingleObject::GetInstance().GetErrorString()); return true; } DETLOG5(g_Log, "USPJapanUserLogOut È£Ãâ ¸®ÅÏ °ª Ãâ·Â- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, ReturnedFlag: %u", UserID, AccountName, ServerID, Cmd, dwReturnedFlag); } break; case PktUUT::UpdateUIDTableUserMove: case PktUUT::UpdateUIDTableCharMove: { CPerformanceInstrument move("ZoneMove"); CAutoInstrument autoInstrument(move); unsigned long dwReturnedFlag = 0; if (false == DBComponent::BillingDB::USPJapanUserLogOut(CDBSingleObject::GetInstance(), AccountName, &dwReturnedFlag)) { ERRLOG5(g_Log, "USPJapanUserLogOut È£Ãâ ½ÇÆÐ- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, ErrMsg: %s", UserID, AccountName, ServerID, Cmd, CDBSingleObject::GetInstance().GetErrorString()); return true; } DETLOG5(g_Log, "USPJapanUserLogOut È£Ãâ ¸®ÅÏ °ª Ãâ·Â- UID: %u, AccountName: %s, ServerID: 0x%08x, CMD: %d, ReturnedFlag: %u", UserID, AccountName, ServerID, Cmd, dwReturnedFlag); } break; }; return true; } bool CUIDAgentDispatch::ProcessDisconnectJapan() { unsigned long dwResult = 0; if (false == DBComponent::BillingDB::USPServer_End(CDBSingleObject::GetInstance(), m_Group, &dwResult)) { SERLOG3(g_Log, "%d ±×·ì ·Î±×¾Æ¿ô ½ÇÆÐ. °á°ú°ª:0x%08x DB¿¡·¯ ·Î±×:%s", m_Group, dwResult, CDBSingleObject::GetInstance().GetErrorString()); } else { SERLOG1(g_Log, "%d ±×·ì USEServer_End È£Ãâ ¼º°ø", m_Group); } return true; }