X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/641204dfbdb9fc870cdd2e7f9e3169a44693e7bf..e19d853bbf16b7ba8c58c71c1da488b9034e0fb3:/stglibs/srvconf.lib/parser.cpp diff --git a/stglibs/srvconf.lib/parser.cpp b/stglibs/srvconf.lib/parser.cpp index 7c96b2ed..bd6bb62e 100644 --- a/stglibs/srvconf.lib/parser.cpp +++ b/stglibs/srvconf.lib/parser.cpp @@ -33,30 +33,22 @@ #include #include -#include "common.h" -//#include "srvconf_common.h" -#include "stg_const.h" -#include "servconf.h" +#include "stg/common.h" +#include "stg/const.h" +#include "stg/servconf.h" using namespace std; -//----------------------------------------------------------------------------- -PARSER::PARSER() -{ -} //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- PARSER_GET_USERS::PARSER_GET_USERS() + : RecvUserDataCb(NULL), + userDataCb(NULL), + user(), + depth(0), + error(false) { -depth = 0; -error = false; -RecvUserDataCb = NULL; -} -//----------------------------------------------------------------------------- -void PARSER_GET_USERS::Reset() -{ - } //----------------------------------------------------------------------------- int PARSER_GET_USERS::ParseStart(const char *el, const char **attr) @@ -173,6 +165,14 @@ if (strcasecmp(el, "credit") == 0) } } +if (strcasecmp(el, "creditExpire") == 0) + { + if (str2x(attr[1], user.creditExpire) < 0) + { + return; + } + } + /*if (strcasecmp(el, "freemb") == 0) { if (strtodouble2(attr[1], user.freeMb) < 0) @@ -385,15 +385,12 @@ userDataCb = data; //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- PARSER_GET_USER::PARSER_GET_USER() + : RecvUserDataCb(NULL), + userDataCb(NULL), + user(), + depth(0), + error(false) { -depth = 0; -error = false; -RecvUserDataCb = NULL; -} -//----------------------------------------------------------------------------- -void PARSER_GET_USER::Reset() -{ - } //----------------------------------------------------------------------------- int PARSER_GET_USER::ParseStart(const char *el, const char **attr) @@ -530,6 +527,14 @@ if (strcasecmp(el, "currip") == 0) user.ip = inet_addr(attr[1]); } +if (strcasecmp(el, "creditExpire") == 0) + { + if (str2x(attr[1], user.creditExpire) < 0) + { + return; + } + } + for (int i = 0; i < USERDATA_NUM; i++) { string num; @@ -657,174 +662,12 @@ userDataCb = data; //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -PARSER_GET_SERVER_INFO::PARSER_GET_SERVER_INFO() -{ -depth = 0; -error = false; -RecvServerInfoDataCb = NULL; -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::Reset() -{ - -} -//----------------------------------------------------------------------------- -int PARSER_GET_SERVER_INFO::ParseStart(const char *el, const char **attr) -{ -depth++; -if (depth == 1) - { - if (strcasecmp(el, "ServerInfo") != 0) - { - //printf("%s\n", el); - } - } -else - { - if (depth == 2) - { - if (strcasecmp(el, "uname") == 0) - { - ParseUname(attr); - return 0; - } - if (strcasecmp(el, "version") == 0) - { - ParseServerVersion(attr); - return 0; - } - if (strcasecmp(el, "tariff") == 0) - { - ParseTariffType(attr); - return 0; - } - if (strcasecmp(el, "dir_num") == 0) - { - ParseDirNum(attr); - return 0; - } - if (strcasecmp(el, "users_num") == 0) - { - ParseUsersNum(attr); - return 0; - } - if (strcasecmp(el, "tariff_num") == 0) - { - ParseTariffsNum(attr); - return 0; - } - - for (int j = 0; j < DIR_NUM; j++) - { - char str[16]; - sprintf(str, "dir_name_%d", j); - if (strcasecmp(el, str) == 0) - { - ParseDirName(attr, j); - } - } - - } - } -return 0; -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseEnd(const char *) -{ -depth--; -if (depth == 0) - { - RecvServerInfoDataCb(&serverInfo, serverInfoDataCb); - } -} -//----------------------------------------------------------------------------- -/*void PARSER_GET_SERVER_INFO::ParseServerInfo(const char * el, const char ** attr) - { - }*/ -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::SetServerInfoRecvCb(RecvServerInfoDataCb_t f, void * data) -{ -RecvServerInfoDataCb = f; -serverInfoDataCb = data; -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseUname(const char ** attr) -{ -if (strcmp(*attr, "value") == 0) - serverInfo.uname = attr[1]; -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseServerVersion(const char ** attr) -{ -if (strcmp(*attr, "value") == 0) - serverInfo.version = attr[1]; -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseUsersNum(const char ** attr) -{ -if (strcmp(*attr, "value") == 0) - { - if (str2x(attr[1], serverInfo.usersNum) < 0) - { - serverInfo.usersNum = -1; - return; - } - } -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseTariffsNum(const char ** attr) -{ -if (strcmp(*attr, "value") == 0) - { - if (str2x(attr[1], serverInfo.tariffNum) < 0) - { - serverInfo.tariffNum = -1; - return; - } - } -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseTariffType(const char ** attr) -{ -if (strcmp(*attr, "value") == 0) - { - if (str2x(attr[1], serverInfo.tariffType) < 0) - { - serverInfo.tariffType = -1; - return; - } - } -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseDirNum(const char **attr) -{ -if (strcasecmp(*attr, "value") == 0) - { - if (str2x(attr[1], serverInfo.dirNum) < 0) - { - serverInfo.dirNum = -1; - return; - } - } -} -//----------------------------------------------------------------------------- -void PARSER_GET_SERVER_INFO::ParseDirName(const char **attr, int d) -{ -if (strcmp(attr[0], "value") == 0) - { - char str[2*DIRNAME_LEN + 1]; - Decode21(str, attr[1]); - serverInfo.dirName[d] = str; - } -} -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- PARSER_CHG_USER::PARSER_CHG_USER() + : RecvChgUserCb(NULL), + chgUserCbData(NULL), + depth(0), + error(false) { -depth = 0; -error = false; -RecvChgUserCb = NULL; } //----------------------------------------------------------------------------- int PARSER_CHG_USER::ParseStart(const char *el, const char **attr) @@ -851,11 +694,6 @@ return 0; void PARSER_CHG_USER::ParseEnd(const char *) { depth--; -} -//----------------------------------------------------------------------------- -void PARSER_CHG_USER::Reset() -{ - } //----------------------------------------------------------------------------- void PARSER_CHG_USER::ParseAnswer(const char *, const char **attr) @@ -874,53 +712,12 @@ chgUserCbData = data; //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -PARSER_CHECK_USER::PARSER_CHECK_USER() -{ -depth = 0; -error = false; -RecvCheckUserCb = NULL; -} -//----------------------------------------------------------------------------- -int PARSER_CHECK_USER::ParseStart(const char *el, const char **attr) -{ -depth++; -if (depth == 1) - { - if (strcasecmp(el, "CheckUser") == 0) - { - //printf("el=%s attr[0]=%s attr[1]=%s\n", el, attr[0], attr[1]); - ParseAnswer(el, attr); - } - } -return 0; -} -//----------------------------------------------------------------------------- -void PARSER_CHECK_USER::ParseEnd(const char *) -{ -depth--; -} -//----------------------------------------------------------------------------- -void PARSER_CHECK_USER::ParseAnswer(const char *, const char **attr) -{ -if (RecvCheckUserCb) - { - RecvCheckUserCb(attr[1], checkUserCbData); - } -} -//----------------------------------------------------------------------------- -void PARSER_CHECK_USER::SetCheckUserRecvCb(RecvCheckUserCb_t f, void * data) -{ -RecvCheckUserCb = f; -checkUserCbData = data; -} -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- PARSER_SEND_MESSAGE::PARSER_SEND_MESSAGE() + : RecvSendMessageCb(NULL), + sendMessageCbData(NULL), + depth(0), + error(false) { -depth = 0; -error = false; -RecvSendMessageCb = NULL; } //----------------------------------------------------------------------------- int PARSER_SEND_MESSAGE::ParseStart(const char *el, const char **attr) @@ -939,11 +736,6 @@ return 0; void PARSER_SEND_MESSAGE::ParseEnd(const char *) { depth--; -} -//----------------------------------------------------------------------------- -void PARSER_SEND_MESSAGE::Reset() -{ - } //----------------------------------------------------------------------------- void PARSER_SEND_MESSAGE::ParseAnswer(const char *, const char **attr) @@ -958,4 +750,3 @@ RecvSendMessageCb = f; sendMessageCbData = data; } //----------------------------------------------------------------------------- -