Files
Client/Server/ToolProject/SeverSetupDlg/SetupPage6.cpp
LGram16 dd97ddec92 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>
2025-11-29 20:17:20 +09:00

220 lines
8.6 KiB
C++

// SetupPage6.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "SeverSetupDlg.h"
#include "SetupPage6.h"
#include "ServerGroup.h"
#include <Utility/Setup/ServerSetup.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include ".\setuppage6.h"
// CSetupPage6 대화 상자입니다.
IMPLEMENT_DYNAMIC(CSetupPage6, CPropertyPage)
CSetupPage6::CSetupPage6()
: CPropertyPage(CSetupPage6::IDD)
, m_bEnabled(FALSE)
, m_szLogOtherServerListenPort(_T(""))
, m_szLogClientListenPort(_T(""))
, m_szLogDBInfo(_T(""))
, m_szChatServerID(_T(""))
, m_szChatGameServerListenPort(_T(""))
, m_szChatMonitoringToolListenPort(_T(""))
, m_bChatPingCheck(FALSE)
, m_szChatDBAgentServerAddr(_T(""))
, m_szAdminToolDBInfo(_T(""))
, m_bUserIPCheck(FALSE)
{
}
CSetupPage6::~CSetupPage6()
{
}
void CSetupPage6::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Text(pDX, IDC_LOG_OTHER_SERVER_PORT, m_szLogOtherServerListenPort);
DDX_Text(pDX, IDC_LOG_CLIENT_PORT, m_szLogClientListenPort);
DDX_Text(pDX, IDC_LOG_EDT_DBSETTING, m_szLogDBInfo);
DDX_Text(pDX, IDC_CHAT_SERVER_ID, m_szChatServerID);
DDX_Text(pDX, IDC_CHAT_GAME_SERVER_TCPPORT, m_szChatGameServerListenPort);
DDX_Text(pDX, IDC_CHAT_MONITORING_TOOL_TCP_PORT, m_szChatMonitoringToolListenPort);
DDX_Check(pDX, IDC_CHAT_PING_CHECK, m_bChatPingCheck);
DDX_Check(pDX, IDC_CHAT_USERIP_CHECK, m_bUserIPCheck);
DDX_Control(pDX, IDC_CHAT_SERVER_GROUP, m_cbChatServerGroup);
DDX_Control(pDX, IDC_CHAT_SERVER_CHANNEL, m_cbChatServerChannel);
DDX_Text(pDX, IDC_CHAT_DBAGENT_SERVER_ADDR, m_szChatDBAgentServerAddr);
DDX_Text(pDX, IDC_CHAT_EDT_DBSETTING, m_szAdminToolDBInfo);
}
BEGIN_MESSAGE_MAP(CSetupPage6, CPropertyPage)
ON_WM_ACTIVATE()
ON_BN_CLICKED(IDC_LOG_BTN_DBSETTING, OnBnClickedLogBtnDbsetting)
ON_BN_CLICKED(IDC_CHAT_BTN_DBSETTING, OnBnClickedChatBtnDbsetting)
ON_CBN_SELCHANGE(IDC_CHAT_SERVER_GROUP, OnCbnSelchangeChatServerGroup)
ON_CBN_SELCHANGE(IDC_CHAT_SERVER_CHANNEL, OnCbnSelchangeChatServerChannel)
END_MESSAGE_MAP()
// CSetupPage6 메시지 처리기입니다.
BOOL CSetupPage6::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_szLogOtherServerListenPort.Format(_T("%d"), CServerSetup::LogServerOtherServerListen);
m_szLogClientListenPort.Format(_T("%d"), CServerSetup::LogServerLogClientListen);
m_szChatGameServerListenPort.Format(_T("%d"), CServerSetup::ChatServerGameServerListen);
m_szChatMonitoringToolListenPort.Format(_T("%d"), CServerSetup::ChatServerMonitoringToolListen);
SetServerGroup(m_cbChatServerGroup);
SetServerChannel(m_cbChatServerChannel);
ReadStringFromReg(g_szSetupFileName, _T("LogServer"), _T("LogDBType"), m_LogDB.m_szDBData[DBSetting::DB_TYPE]);
ReadStringFromReg(g_szSetupFileName, _T("LogServer"), _T("LogDBAddr"), m_LogDB.m_szDBData[DBSetting::DB_ADDR]);
ReadStringFromReg(g_szSetupFileName, _T("LogServer"), _T("LogDBName"), m_LogDB.m_szDBData[DBSetting::DB_NAME]);
ReadStringFromReg(g_szSetupFileName, _T("LogServer"), _T("LogDBUser"), m_LogDB.m_szDBData[DBSetting::DB_USER]);
ReadStringFromReg(g_szSetupFileName, _T("LogServer"), _T("LogDBPass"), m_LogDB.m_szDBData[DBSetting::DB_PASS]);
CString szChatPingCheck, szUserIPCheck;
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("ServerID"), m_szChatServerID);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("PingCheck"), szChatPingCheck);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("UserIPCheck"), szUserIPCheck);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("DBAgentAddress"), m_szChatDBAgentServerAddr);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBType"), m_AdminToolDB.m_szDBData[DBSetting::DB_TYPE]);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBAddr"), m_AdminToolDB.m_szDBData[DBSetting::DB_ADDR]);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBName"), m_AdminToolDB.m_szDBData[DBSetting::DB_NAME]);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBUser"), m_AdminToolDB.m_szDBData[DBSetting::DB_USER]);
ReadStringFromReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBPass"), m_AdminToolDB.m_szDBData[DBSetting::DB_PASS]);
SERVER_ID serverID = { 0, };
serverID.dwID = atol(m_szChatServerID);
m_cbChatServerGroup.SetCurSel(serverID.sID.Group);
m_cbChatServerChannel.SetCurSel(serverID.sID.Channel);
m_bChatPingCheck = (1 == atoi(szChatPingCheck));
m_bUserIPCheck = (1 == atoi(szUserIPCheck));
m_szLogDBInfo.SetString(_T("* LogServer DBSetting \r\n"));
CDBSetting::CreateDBInfoString(m_LogDB, m_szLogDBInfo);
m_szAdminToolDBInfo.SetString(_T("* AdminToolDBSetting (For chatting ban) \r\n"));
CDBSetting::CreateDBInfoString(m_AdminToolDB, m_szAdminToolDBInfo);
UpdateData(FALSE);
UpdateServerID();
return TRUE; // return TRUE unless you set the focus to a control
// 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
}
void CSetupPage6::Save()
{
if(m_bEnabled)
{
UpdateData(TRUE);
WriteStringToReg(g_szSetupFileName, _T("LogServer"), _T("LogDBType"), m_LogDB.m_szDBData[DBSetting::DB_TYPE]);
WriteStringToReg(g_szSetupFileName, _T("LogServer"), _T("LogDBAddr"), m_LogDB.m_szDBData[DBSetting::DB_ADDR]);
WriteStringToReg(g_szSetupFileName, _T("LogServer"), _T("LogDBName"), m_LogDB.m_szDBData[DBSetting::DB_NAME]);
WriteStringToReg(g_szSetupFileName, _T("LogServer"), _T("LogDBUser"), m_LogDB.m_szDBData[DBSetting::DB_USER]);
WriteStringToReg(g_szSetupFileName, _T("LogServer"), _T("LogDBPass"), m_LogDB.m_szDBData[DBSetting::DB_PASS]);
SERVER_ID serverID = {0,};
serverID.sID.Type = CServerSetup::ChatServer;
serverID.sID.Group = m_cbChatServerGroup.GetCurSel();
serverID.sID.Channel = m_cbChatServerChannel.GetCurSel();
CString szChatServerID;
CString szChatPingCheck;
CString szUserIPCheck;
szChatServerID.Format(_T("%d"), serverID.dwID);
szChatPingCheck.Format(_T("%s"), BOOLToString(m_bChatPingCheck));
szUserIPCheck.Format(_T("%s"), BOOLToString(m_bUserIPCheck));
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("ServerID"), szChatServerID);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("PingCheck"), szChatPingCheck);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("UserIPCheck"), szUserIPCheck);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("DBAgentAddress"), m_szChatDBAgentServerAddr);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBType"), m_AdminToolDB.m_szDBData[DBSetting::DB_TYPE]);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBAddr"), m_AdminToolDB.m_szDBData[DBSetting::DB_ADDR]);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBName"), m_AdminToolDB.m_szDBData[DBSetting::DB_NAME]);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBUser"), m_AdminToolDB.m_szDBData[DBSetting::DB_USER]);
WriteStringToReg(g_szSetupFileName, _T("ChatServer"), _T("AdminToolDBPass"), m_AdminToolDB.m_szDBData[DBSetting::DB_PASS]);
}
}
BOOL CSetupPage6::OnSetActive()
{
UpdateData(FALSE);
m_bEnabled = TRUE;
return CPropertyPage::OnSetActive();
}
void CSetupPage6::UpdateServerID()
{
UpdateData(TRUE);
SERVER_ID serverID = {0,};
serverID.sID.ID = 0;
serverID.sID.Type = CServerSetup::ChatServer;
serverID.sID.Group = m_cbChatServerGroup.GetCurSel();
serverID.sID.Channel = m_cbChatServerChannel.GetCurSel();
m_szChatServerID.Format("0x%08x", serverID.dwID);
UpdateData(FALSE);
}
void CSetupPage6::OnBnClickedLogBtnDbsetting()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
UpdateData(TRUE);
if (CDBSetting::CreateDBSettingDlg(
_T("LogServer DBSetting"),
_T("* LogServer DBSetting \r\n"),
m_LogDB, m_szLogDBInfo))
{
UpdateData(FALSE);
}
}
void CSetupPage6::OnBnClickedChatBtnDbsetting()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
UpdateData(TRUE);
if (CDBSetting::CreateDBSettingDlg(
_T("AdminTool (For chatting ban) DBSetting"),
_T("* AdminToolDBSetting (For chatting ban) \r\n"),
m_AdminToolDB, m_szAdminToolDBInfo))
{
UpdateData(FALSE);
}
}
void CSetupPage6::OnCbnSelchangeChatServerGroup()
{
UpdateServerID();
}
void CSetupPage6::OnCbnSelchangeChatServerChannel()
{
UpdateServerID();
}