X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/1347f3d1e04bedd1508589173f577673ee2c5554..e496319a2820abe0ec1d2e37c915ded3f314f5cf:/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp diff --git a/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp b/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp index 22facc61..7bc635ab 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp @@ -29,6 +29,16 @@ */ +#include "parser.h" +#include "parser_auth_by.h" +#include "parser_user_info.h" + +#include "stg/users.h" +#include "stg/admins.h" +#include "stg/tariffs.h" +#include "stg/logger.h" +#include "stg/common.h" + #include #include "configproto.h" @@ -40,7 +50,6 @@ CONFIGPROTO * cp = static_cast(data); if (cp->currParser) { - cp->currParser->SetAnswerList(&cp->answerList); cp->currParser->SetCurrAdmin(*cp->currAdmin); cp->currParser->ParseStart(data, el, attr); } @@ -48,7 +57,6 @@ else { for (size_t i = 0; i < cp->dataParser.size(); i++) { - cp->dataParser[i]->SetAnswerList(&cp->answerList); cp->dataParser[i]->SetCurrAdmin(*cp->currAdmin); cp->dataParser[i]->Reset(); if (cp->dataParser[i]->ParseStart(data, el, attr) == 0) @@ -71,6 +79,7 @@ if (cp->currParser) { if (cp->currParser->ParseEnd(data, el) == 0) { + cp->dataAnswer = cp->currParser->GetAnswer(); cp->currParser = NULL; } } @@ -80,6 +89,8 @@ else { if (cp->dataParser[i]->ParseEnd(data, el) == 0) { + cp->dataAnswer = cp->currParser->GetAnswer(); + cp->currParser = NULL; break; } } @@ -107,6 +118,7 @@ CONFIGPROTO::CONFIGPROTO(PLUGIN_LOGGER & l) parserDelUser(), parserCheckUser(), parserSendMessage(), + parserAuthBy(), parserGetAdmins(), parserAddAdmin(), parserDelAdmin(), @@ -121,25 +133,27 @@ CONFIGPROTO::CONFIGPROTO(PLUGIN_LOGGER & l) xmlParser(), errorStr() { -dataParser.push_back(&parserGetServInfo); +dataParser.push_back(new PARSER_GET_SERVER_INFO); -dataParser.push_back(&parserGetUsers); -dataParser.push_back(&parserGetUser); -dataParser.push_back(&parserChgUser); -dataParser.push_back(&parserAddUser); -dataParser.push_back(&parserDelUser); -dataParser.push_back(&parserCheckUser); -dataParser.push_back(&parserSendMessage); +dataParser.push_back(new PARSER_GET_USERS); +dataParser.push_back(new PARSER_GET_USER); +dataParser.push_back(new PARSER_CHG_USER); +dataParser.push_back(new PARSER_ADD_USER); +dataParser.push_back(new PARSER_DEL_USER); +dataParser.push_back(new PARSER_CHECK_USER); +dataParser.push_back(new PARSER_SEND_MESSAGE); +dataParser.push_back(new PARSER_AUTH_BY); +dataParser.push_back(new PARSER_USER_INFO); -dataParser.push_back(&parserGetTariffs); -dataParser.push_back(&parserAddTariff); -dataParser.push_back(&parserDelTariff); -dataParser.push_back(&parserChgTariff); +dataParser.push_back(new PARSER_GET_TARIFFS); +dataParser.push_back(new PARSER_ADD_TARIFF); +dataParser.push_back(new PARSER_DEL_TARIFF); +dataParser.push_back(new PARSER_CHG_TARIFF); -dataParser.push_back(&parserGetAdmins); -dataParser.push_back(&parserChgAdmin); -dataParser.push_back(&parserDelAdmin); -dataParser.push_back(&parserAddAdmin); +dataParser.push_back(new PARSER_GET_ADMINS); +dataParser.push_back(new PARSER_CHG_ADMIN); +dataParser.push_back(new PARSER_DEL_ADMIN); +dataParser.push_back(new PARSER_ADD_ADMIN); xmlParser = XML_ParserCreate(NULL); @@ -153,6 +167,8 @@ if (!xmlParser) //----------------------------------------------------------------------------- CONFIGPROTO::~CONFIGPROTO() { +for (size_t i = 0; i < dataParser.size(); ++i) + delete dataParser[i]; XML_ParserFree(xmlParser); } //-----------------------------------------------------------------------------