X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/cdd6c43fceeb5a37867ae902bb71429abad7fa64..d3819ef7b806ccd92a767ec4bb43e0388f879216:/stglibs/srvconf.lib/servconf.cpp diff --git a/stglibs/srvconf.lib/servconf.cpp b/stglibs/srvconf.lib/servconf.cpp index 8061d7aa..3d82860b 100644 --- a/stglibs/srvconf.lib/servconf.cpp +++ b/stglibs/srvconf.lib/servconf.cpp @@ -24,10 +24,11 @@ $Author: faust $ */ -#include -#include +#include +#include -#include "servconf.h" +#include "stg/common.h" +#include "stg/servconf.h" using namespace std; @@ -63,12 +64,9 @@ while (node != list1->end()) if (XML_Parse(sc->parser, ans, len, done) == XML_STATUS_ERROR) { - snprintf(sc->errorMsg, MAX_ERR_STR_LEN, "XML parse error at line %d: %s", - static_cast(XML_GetCurrentLineNumber(sc->parser)), - XML_ErrorString(XML_GetErrorCode(sc->parser))); - printf(sc->errorMsg, "XML parse error at line %d: %s", - XML_GetCurrentLineNumber(sc->parser), - XML_ErrorString(XML_GetErrorCode(sc->parser))); + strprintf(&sc->errorMsg, "XML parse error at line %d: %s", + static_cast(XML_GetCurrentLineNumber(sc->parser)), + XML_ErrorString(XML_GetErrorCode(sc->parser))); return st_xml_parse_error; } ++node; @@ -93,9 +91,25 @@ sc->End(el); } //----------------------------------------------------------------------------- SERVCONF::SERVCONF() + : currParser(NULL), + parseDepth(0), + error(0), + getUsersCallback(NULL), + getUserCallback(NULL), + authByCallback(NULL), + serverInfoCallback(NULL), + RecvChgUserCb(NULL), + checkUserCallback(NULL), + RecvSendMessageCb(NULL), + getUsersData(NULL), + getUserData(NULL), + authByData(NULL), + serverInfoData(NULL), + chgUserDataCb(NULL), + checkUserData(NULL), + sendMessageDataCb(NULL) { parser = XML_ParserCreate(NULL); -parseDepth = 0; } //----------------------------------------------------------------------------- void SERVCONF::SetServer(const char * server) @@ -125,24 +139,55 @@ snprintf(request, 255, "", l); int ret; currParser = &parserGetUser; -((PARSER_GET_USER*)currParser)->SetUserDataRecvCb(RecvGetUserDataCb, getUserDataDataCb); +((PARSER_GET_USER*)currParser)->SetCallback(getUserCallback, getUserData); nt.Reset(); nt.SetRxCallback(this, AnsRecv); if ((ret = nt.Connect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Transact(request)) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Disconnect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); + return ret; + } + +return st_ok; +} +//----------------------------------------------------------------------------- +int SERVCONF::AuthBy(const char * l) +{ +char request[255]; +snprintf(request, 255, "", l); + +currParser = &parserAuthBy; +((PARSER_AUTH_BY*)currParser)->SetCallback(authByCallback, authByData); + +nt.Reset(); +nt.SetRxCallback(this, AnsRecv); + +int ret; +if ((ret = nt.Connect()) != st_ok) + { + errorMsg = nt.GetError(); + return ret; + } +if ((ret = nt.Transact(request)) != st_ok) + { + errorMsg = nt.GetError(); + return ret; + } +if ((ret = nt.Disconnect()) != st_ok) + { + errorMsg = nt.GetError(); return ret; } @@ -155,24 +200,24 @@ char request[] = ""; int ret; currParser = &parserGetUsers; -((PARSER_GET_USERS*)currParser)->SetUserDataRecvCb(RecvUserDataCb, getUsersDataDataCb); +((PARSER_GET_USERS*)currParser)->SetCallback(getUsersCallback, getUsersData); nt.Reset(); nt.SetRxCallback(this, AnsRecv); if ((ret = nt.Connect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Transact(request)) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Disconnect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } @@ -195,47 +240,47 @@ nt.SetRxCallback(this, AnsRecv); if ((ret = nt.Connect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Transact(request)) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Disconnect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } return st_ok; } //----------------------------------------------------------------------------- -int SERVCONF::GetServerInfo() +int SERVCONF::ServerInfo() { char request[] = ""; int ret; currParser = &parserServerInfo; -((PARSER_GET_SERVER_INFO*)currParser)->SetServerInfoRecvCb(RecvServerInfoDataCb, getServerInfoDataCb); +((PARSER_SERVER_INFO*)currParser)->SetCallback(serverInfoCallback, serverInfoData); nt.Reset(); nt.SetRxCallback(this, AnsRecv); if ((ret = nt.Connect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Transact(request)) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Disconnect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } @@ -254,20 +299,17 @@ nt.SetRxCallback(this, AnsRecv); if ((ret = nt.Connect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); - printfd(__FILE__, "Error on connect: '%s'\n", errorMsg); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Transact(request)) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); - printfd(__FILE__, "Error on transact: '%s'\n", errorMsg); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Disconnect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); - printfd(__FILE__, "Error on disconnect: '%s'\n", errorMsg); + errorMsg = nt.GetError(); return ret; } @@ -288,17 +330,17 @@ nt.SetRxCallback(this, AnsRecv); if ((ret = nt.Connect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Transact(request)) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Disconnect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } @@ -312,24 +354,24 @@ snprintf(request, 255, "", login, passw int ret; currParser = &parserCheckUser; -((PARSER_CHECK_USER*)currParser)->SetCheckUserRecvCb(RecvCheckUserCb, checkUserDataCb); +((PARSER_CHECK_USER*)currParser)->SetCallback(checkUserCallback, checkUserData); nt.Reset(); nt.SetRxCallback(this, AnsRecv); if ((ret = nt.Connect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Transact(request)) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } if ((ret = nt.Disconnect()) != st_ok) { - strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN); + errorMsg = nt.GetError(); return ret; } @@ -347,22 +389,28 @@ void SERVCONF::End(const char *el) currParser->ParseEnd(el); } //----------------------------------------------------------------------------- -void SERVCONF::SetUserDataRecvCb(RecvUserDataCb_t f, void * data) +void SERVCONF::SetGetUsersCallback(PARSER_GET_USERS::CALLBACK f, void * data) +{ +getUsersCallback = f; +getUsersData = data; +} +//----------------------------------------------------------------------------- +void SERVCONF::SetGetUserCallback(PARSER_GET_USER::CALLBACK f, void * data) { -RecvUserDataCb = f; -getUsersDataDataCb = data; +getUserCallback = f; +getUserData = data; } //----------------------------------------------------------------------------- -void SERVCONF::SetGetUserDataRecvCb(RecvUserDataCb_t f, void * data) +void SERVCONF::SetAuthByCallback(PARSER_AUTH_BY::CALLBACK f, void * data) { -RecvGetUserDataCb = f; //GET_USER -getUserDataDataCb = data; +authByCallback = f; +authByData = data; } //----------------------------------------------------------------------------- -void SERVCONF::SetServerInfoRecvCb(RecvServerInfoDataCb_t f, void * data) +void SERVCONF::SetServerInfoCallback(PARSER_SERVER_INFO::CALLBACK f, void * data) { -RecvServerInfoDataCb = f; -getServerInfoDataCb = data; +serverInfoCallback = f; +serverInfoData = data; } //----------------------------------------------------------------------------- void SERVCONF::SetChgUserCb(RecvChgUserCb_t f, void * data) @@ -371,10 +419,10 @@ RecvChgUserCb = f; chgUserDataCb = data; } //----------------------------------------------------------------------------- -void SERVCONF::SetCheckUserCb(RecvCheckUserCb_t f, void * data) +void SERVCONF::SetCheckUserCallback(PARSER_CHECK_USER::CALLBACK f, void * data) { -RecvCheckUserCb = f; -checkUserDataCb = data; +checkUserCallback = f; +checkUserData = data; } //----------------------------------------------------------------------------- void SERVCONF::SetSendMessageCb(RecvSendMessageCb_t f, void * data) @@ -383,7 +431,7 @@ RecvSendMessageCb = f; sendMessageDataCb = data; } //----------------------------------------------------------------------------- -char * SERVCONF::GetStrError() +const std::string & SERVCONF::GetStrError() const { return errorMsg; }