#include "stdafx.h" #include "AuthDB.h" #include "../Parser/ServerInfo.h" #include #include unsigned long CAuthDB::GetUIDFromAccount(char* szAccountName) { const char* szNation = CServerInfo::GetInstance().GetValue("NATION"); if (NULL == szNation) { ERRLOG0(g_Log, "±¹°¡ ŸÀÔÀ» ¾ò´Âµ¥ ½ÇÆÐÇß½À´Ï´Ù."); return 0; } char szQuery[MAX_QUERY_LENGTH]; if (0 == strcmp("KOREA", szNation)) { _snprintf(szQuery, MAX_QUERY_LENGTH, "SELECT uid, strID FROM TblRylUserInfo WHERE strID = '%s'", szAccountName); } else { _snprintf(szQuery, MAX_QUERY_LENGTH, "EXEC dbo.sp_SearchUserAccount NULL, '%s'", szAccountName); } unsigned long dwUID = 0; const int nBufferSize = sizeof(int) + PktAdminMgr::MAX_ACCOUNT; char szBuffer[nBufferSize]; ZeroMemory(szBuffer, nBufferSize); if (false == ExecuteQueryGetData(szQuery, szBuffer)) { ERRLOG2(g_Log, "UID¸¦ ¾ò´Âµ¥ ½ÇÆÐÇß½À´Ï´Ù. Account: %s, Err: %s", szAccountName, GetErrorString()); return 0; } memcpy(&dwUID, szBuffer, sizeof(unsigned int)); return dwUID; } bool CAuthDB::GetAccountFromUID(unsigned long dwUID, void* lpGetData) { const char* szNation = CServerInfo::GetInstance().GetValue("NATION"); if (NULL == szNation) { ERRLOG0(g_Log, "±¹°¡ ŸÀÔÀ» ¾ò´Âµ¥ ½ÇÆÐÇß½À´Ï´Ù."); return 0; } char szQuery[MAX_QUERY_LENGTH]; if (0 == strcmp("KOREA", szNation)) { _snprintf(szQuery, MAX_QUERY_LENGTH, "SELECT uid, strID FROM TblRylUserInfo WHERE uid = %u", dwUID); } else { _snprintf(szQuery, MAX_QUERY_LENGTH, "EXEC dbo.sp_SearchUserAccount %u, NULL", dwUID); } const int nBufferSize = sizeof(int) + PktAdminMgr::MAX_ACCOUNT; char szBuffer[nBufferSize]; ZeroMemory(szBuffer, nBufferSize); if (true == ExecuteQueryGetData(szQuery, szBuffer)) { memcpy(lpGetData, szBuffer + sizeof(int), PktAdminMgr::MAX_ACCOUNT); return true; } ERRLOG2(g_Log, "Account¸¦ ¾ò´Âµ¥ ½ÇÆÐÇß½À´Ï´Ù. UID: %u, Err: %s", dwUID, GetErrorString()); return false; }