init
This commit is contained in:
95
server/GateServer/GateServerConfig.cpp
Normal file
95
server/GateServer/GateServerConfig.cpp
Normal file
@@ -0,0 +1,95 @@
|
||||
#include "StdAfx.h"
|
||||
#include "GateServerConfig.h"
|
||||
|
||||
void CGateServerConfig::showError(LPCTSTR sError)
|
||||
{
|
||||
m_sLastErrDesc = sError;
|
||||
RefString s = _T("[Config Error]");
|
||||
s += sError;
|
||||
throw s;
|
||||
}
|
||||
|
||||
bool CGateServerConfig::readConfig(CGateConfigList &configList, const char *pszFileName)
|
||||
{
|
||||
GATECONFIG config;
|
||||
if ( !openGlobalTable(pszFileName) )
|
||||
return false;
|
||||
//遍历网关配置表,每个网关配置表均会产生一个网关对象
|
||||
if ( enumTableFirst() )
|
||||
{
|
||||
do
|
||||
{
|
||||
//读取网关服务配置表
|
||||
if ( !openFieldTable("LocalService") )
|
||||
return false;
|
||||
getFieldStringBuffer("ServerName", config.GateServer.sName, ArrayCount(config.GateServer.sName));
|
||||
|
||||
//设置标题
|
||||
char buff[256];
|
||||
|
||||
strcpy(buff,"lcwl-");
|
||||
strcat(buff,config.GateServer.sName);
|
||||
strcat(buff,"-V");
|
||||
in_addr ia;
|
||||
ia.s_addr = RUNGATE_KRN_VERSION;
|
||||
strcat(buff,inet_ntoa(ia));
|
||||
SetConsoleTitle(buff );
|
||||
|
||||
getFieldStringBuffer("Address", config.GateServer.sAddress, ArrayCount(config.GateServer.sAddress));
|
||||
config.GateServer.nPort = getFieldInt("Port");
|
||||
config.GateServer.nMaxSession = getFieldInt("MaxSession");
|
||||
config.GateServer.SendThreadCount = getFieldInt("SendThreadCount");
|
||||
closeTable();
|
||||
|
||||
//读取后台服务器配置表
|
||||
if ( !openFieldTable("BackServer") )
|
||||
return false;
|
||||
getFieldStringBuffer("Host", config.BackServer.sHost, ArrayCount(config.BackServer.sHost));
|
||||
config.BackServer.nPort = getFieldInt("Port");
|
||||
closeTable();
|
||||
|
||||
//将网关配置加到配置列表中
|
||||
configList.add(config);
|
||||
}
|
||||
while (enumTableNext());
|
||||
}
|
||||
closeTable();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CGateServerConfig::loadConfig(CGateConfigList &configList, char *pszFileName)
|
||||
{
|
||||
|
||||
char * szConfigFileName =pszFileName;
|
||||
if(szConfigFileName ==NULL)
|
||||
{
|
||||
szConfigFileName= _T("GateServer.txt");
|
||||
}
|
||||
OutputMsg(rmTip,"load file from %s",szConfigFileName);
|
||||
|
||||
bool result = false;
|
||||
CMemoryStream ms;
|
||||
try
|
||||
{
|
||||
if ( ms.loadFromFile(szConfigFileName) <=0 )
|
||||
{
|
||||
showErrorFormat(_T("unable to load %s"), szConfigFileName );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !setScript((LPCSTR)ms.getMemory()) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
result = readConfig(configList,"GateServer");
|
||||
}
|
||||
catch(RefString &s)
|
||||
{
|
||||
OutputMsg(rmError, s.rawStr());
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
_tprintf(_T("unexpected error on load gate config"));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user