Restructure repository to include all source folders

Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,156 @@
#include "stdafx.h"
#include "ChatServerConfig.h"
#include <Utility/Setup/ServerSetup.h>
const char* CChatServerConfig::ms_szDefaultSetupFileName = "./Script/Server/ChatServerConfig.txt";
CChatServerConfig& CChatServerConfig::GetInstance()
{
static CChatServerConfig chatServerConfig;
return chatServerConfig;
}
CChatServerConfig::CChatServerConfig()
: m_lpLimitUserByIP(new CLimitUserByIP(0))
{
}
CChatServerConfig::~CChatServerConfig()
{
if(m_lpLimitUserByIP)
{
delete m_lpLimitUserByIP;
m_lpLimitUserByIP = 0;
}
}
//! <20><><EFBFBD>Ϸκ<CFB7><CEBA><EFBFBD> <20>¾<EFBFBD><C2BE><EFBFBD> <20>ε<EFBFBD><CEB5>Ѵ<EFBFBD>. (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.)
bool CChatServerConfig::LoadSetup(const char* szFileName)
{
if(0 != m_lpLimitUserByIP)
{
m_lpLimitUserByIP->ClearIPList();
m_lpLimitUserByIP->OperateMode(CLimitUserByIP::DENY_ALL);
m_lpLimitUserByIP->ReserveAllowIP(256);
m_ChatToolAuthMap.clear();
FILE* lpFile = fopen(szFileName, "rt");
if(lpFile)
{
const int MAX_BUFFER = 4096;
char szBuffer[MAX_BUFFER];
char* szToken = 0;
enum SetupMode
{
NONE,
USER_PASSWORD,
ALLOW_IP
};
SetupMode eSetupMode = NONE;
unsigned long dwAddress = 0;
std::string szUserID;
std::string szPassword;
while(fgets(szBuffer, MAX_BUFFER - 1, lpFile))
{
szBuffer[MAX_BUFFER - 1] = 0;
szToken = strtok(szBuffer, "\r\n\t= ");
if(0 != szToken)
{
char szTokenBuffer[MAX_BUFFER];
strcpy(szTokenBuffer, szToken);
_strupr(szTokenBuffer);
if(0 == strcmp(szTokenBuffer, "//"))
{
// <20>ּ<EFBFBD>ó<EFBFBD><C3B3>...
continue;
}
else if(0 == strcmp(szTokenBuffer, "[USER]"))
{
eSetupMode = USER_PASSWORD;
}
else if(0 == strcmp(szTokenBuffer, "[ALLOW_IP]"))
{
eSetupMode = ALLOW_IP;
if (true == CServerSetup::GetInstance().GetChatToolIPCheck())
{
// <20><EFBFBD><E3B0A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20><><EFBFBD><EFBFBD>.
m_lpLimitUserByIP->OperateMode(CLimitUserByIP::ALLOW_SOME);
}
else
{
m_lpLimitUserByIP->OperateMode(CLimitUserByIP::ALLOW_ALL);
}
}
else
{
switch(eSetupMode)
{
case USER_PASSWORD:
szUserID.assign(szToken);
szToken = strtok(0, "\r\n\t= ");
if(0 != szToken)
{
szPassword.assign(szToken);
m_ChatToolAuthMap.insert(
std::make_pair(szUserID, std::make_pair(szPassword, 0)));
}
break;
case ALLOW_IP:
dwAddress = inet_addr(szToken);
if(0 != dwAddress)
{
m_lpLimitUserByIP->AddAllowIP(dwAddress);
}
break;
}
}
}
};
fclose(lpFile);
return true;
}
}
return false;
}
//! <20><><EFBFBD><EFBFBD> ID<49><44> <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><20>޾Ƽ<DEBE>, <20>¾<EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>ID/Password<72><64><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD>Ѵ<EFBFBD>.
bool CChatServerConfig::Authorize(const char* szUserID, const char* szPassword)
{
ChatToolAuthMap::iterator pos = m_ChatToolAuthMap.find(szUserID);
ChatToolAuthMap::iterator end = m_ChatToolAuthMap.end();
if (pos != end && 0 == pos->second.second &&
0 == pos->second.first.compare(szPassword))
{
// <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD>·<EFBFBD> <20><>ȯ
pos->second.second = 1;
return true;
}
return false;
}
void CChatServerConfig::Logout(const char* szUserID)
{
ChatToolAuthMap::iterator pos = m_ChatToolAuthMap.find(szUserID);
ChatToolAuthMap::iterator end = m_ChatToolAuthMap.end();
if (pos != end && 0 != pos->second.second)
{
// <20>α׾ƿ<D7BE> <20><><EFBFBD>·<EFBFBD> <20><>ȯ
pos->second.second = 0;
}
}