Files
mir_server/server/LoggerServer/LogConfig.cpp

143 lines
2.5 KiB
C++
Raw Normal View History

2025-01-09 17:45:40 +08:00
#ifndef WIN32
#include "stdafx.h"
#include "LogConfig.h"
CLogConfig::CLogConfig(void)
{
m_sUrl[0] = 0;
m_nGag = 0;
m_nSid = 0;
m_nNumPost = 0;
m_sPUrl[0] = 0;
m_sgKey[0] = 0;
m_sSign[0] = 0;
m_nPort = 0;
}
CLogConfig::~CLogConfig(void)
{
}
char * CLogConfig::ReadConfig()
{
bool Result = false;
CMemoryStream ms;
CCustomLuaPreProcessor pp;
LPCTSTR sFilePath="./Config.txt";
try
{
//从文件加载配置脚本
if ( ms.loadFromFile(sFilePath) <= 0 )
{
return "Config.txt not found ";
}
LPCTSTR sText = pp.parse((LPCTSTR)ms.getMemory(), sFilePath);
//设置脚本内容
if ( !setScript(sText) )
{
return "syntax error ontxt";
}
if(openGlobalTable("Config") ==false)
{
return "Not global table Config";
}
char * pUrl=(char *)getFieldString("login_url");
if(pUrl ==NULL)
{
return "login_url is null";
}
strncpy(m_sUrl,pUrl,sizeof(m_sUrl));
int nGag =0;
int nDef =0;
nGag =getFieldInt("gagtime",&nDef);
if(nGag ==0)
{
return "gagtime is 0";
}
m_nGag = nGag;
int nSid =0;
nSid =getFieldInt("sid",&nDef);
m_nSid = nSid;
int nNumPost =0;
nNumPost =getFieldInt("num",&nDef);
m_nNumPost = nNumPost;
int nPort =0;
nPort =getFieldInt("TcpPort",&nDef);
m_nPort = nPort;
char * pPUrl=(char *)getFieldString("post_url");
if(pPUrl ==NULL)
{
return "post_url is null";
}
strncpy(m_sPUrl,pPUrl,sizeof(m_sPUrl));
char * pgKey=(char *)getFieldString("gkey");
if(pgKey ==NULL)
{
return "gkey is null";
}
strncpy(m_sgKey,pgKey,sizeof(m_sgKey));
char * pSign=(char *)getFieldString("sign");
if(pgKey ==NULL)
{
return "sign is null";
}
strncpy(m_sSign,pSign,sizeof(m_sSign));
m_serverList.clear();
if (feildTableExists("servers") && openFieldTable("servers"))
{
if (enumTableFirst())
{
do
{
int nServerId = ((int)getFieldInt(NULL));
m_serverList.push_back(nServerId);
}while (enumTableNext());
}
closeTable();
}
}
catch (RefString &s)
{
//OutputMsg(rmError, _T("load monster config error: %s"), s.rawStr());
return "Error loadtxt";
}
catch (...)
{
return "Error loadtxt 2";
}
//销毁脚本虚拟机
setScript(NULL);
return NULL;
}
void CLogConfig::ShowError(const LPCTSTR sError)
{
m_sLastErrDesc = sError;
RefString sErr;
sErr = _T("[Configuration Error]");
sErr += sError;
//集中处理错误为了简单起见此处直接抛出异常。异常会在readConfig中被捕获从而立刻跳出对配置的循环读取。
throw sErr;
}
#endif