X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/d230cb2411b6d2d6603a930f165bbd3138831eeb..46b0747592074017ff0ea4b33d4a7194235886e5:/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 deleted file mode 100644 index 7ece6549..00000000 --- a/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp +++ /dev/null @@ -1,272 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Date: 27.10.2002 - */ - -/* - * Author : Boris Mikhailenko - */ - - /* - $Revision: 1.22 $ - $Date: 2010/10/04 20:24:14 $ - $Author: faust $ - */ - - -#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 - -#include "configproto.h" - -//----------------------------------------------------------------------------- -void ParseXMLStart(void *data, const char *el, const char **attr) -{ -CONFIGPROTO * cp = static_cast(data); - -if (cp->currParser) - { - cp->currParser->SetCurrAdmin(*cp->currAdmin); - cp->currParser->ParseStart(data, el, attr); - } -else - { - for (size_t i = 0; i < cp->dataParser.size(); i++) - { - cp->dataParser[i]->SetCurrAdmin(*cp->currAdmin); - cp->dataParser[i]->Reset(); - if (cp->dataParser[i]->ParseStart(data, el, attr) == 0) - { - cp->currParser = cp->dataParser[i]; - break; - } - else - { - cp->dataParser[i]->Reset(); - } - } - } -} -//----------------------------------------------------------------------------- -void ParseXMLEnd(void *data, const char *el) -{ -CONFIGPROTO * cp = static_cast(data); -if (cp->currParser) - { - if (cp->currParser->ParseEnd(data, el) == 0) - { - cp->currParser = NULL; - } - } -else - { - for (size_t i = 0; i < cp->dataParser.size(); i++) - { - if (cp->dataParser[i]->ParseEnd(data, el) == 0) - { - break; - } - } - } -} -//----------------------------------------------------------------------------- -CONFIGPROTO::CONFIGPROTO(PLUGIN_LOGGER & l) - : answerList(), - requestList(), - adminIP(0), - adminLogin(), - adminPassword(), - port(0), - thrReciveSendConf(), - nonstop(true), - state(0), - currAdmin(NULL), - logger(l), - listenSocket(-1), - parserGetServInfo(), - parserGetUsers(), - parserGetUser(), - parserChgUser(), - parserAddUser(), - parserDelUser(), - parserCheckUser(), - parserSendMessage(), - parserAuthBy(), - parserGetAdmins(), - parserAddAdmin(), - parserDelAdmin(), - parserChgAdmin(), - parserGetTariffs(), - parserAddTariff(), - parserDelTariff(), - parserChgTariff(), - admins(NULL), - currParser(NULL), - dataParser(), - xmlParser(), - errorStr() -{ -dataParser.push_back(new PARSER_GET_SERVER_INFO); - -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(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(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); - -if (!xmlParser) - { - logger("Couldn't allocate memory for parser."); - exit(1); - } - -} -//----------------------------------------------------------------------------- -CONFIGPROTO::~CONFIGPROTO() -{ -for (size_t i = 0; i < dataParser.size(); ++i) - delete dataParser[i]; -XML_ParserFree(xmlParser); -} -//----------------------------------------------------------------------------- -int CONFIGPROTO::ParseCommand() -{ -std::list::iterator n; -int done = 0; -char str[9]; - -if (requestList.empty()) - return 0; - -n = requestList.begin(); - -strncpy(str, (*n).c_str(), 8); -str[8] = 0; - -XML_ParserReset(xmlParser, NULL); -XML_SetElementHandler(xmlParser, ParseXMLStart, ParseXMLEnd); -XML_SetUserData(xmlParser, this); - -while(nonstop) - { - strncpy(str, (*n).c_str(), 8); - str[8] = 0; - size_t len = strlen(str); - - ++n; - if (n == requestList.end()) - done = 1; - --n; - - if (XML_Parse(xmlParser, (*n).c_str(), static_cast(len), done) == XML_STATUS_ERROR) - { - logger("Invalid configuration request"); - printfd(__FILE__, "Parse error at line %d:\n%s\n", - XML_GetCurrentLineNumber(xmlParser), - XML_ErrorString(XML_GetErrorCode(xmlParser))); - if (currParser) - { - printfd(__FILE__, "Parser reset\n"); - currParser->Reset(); - currParser = NULL; - } - - return -1; - } - - if (done) - return 0; - - ++n; - } - -return 0; -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetPort(uint16_t p) -{ -port = p; -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetAdmins(ADMINS * a) -{ -admins = a; -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetAdmins(a); - } - -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetUsers(USERS * u) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetUsers(u); - } - -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetTariffs(TARIFFS * t) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetTariffs(t); - } -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetStore(STORE * s) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetStore(s); - } -} -//----------------------------------------------------------------------------- -void CONFIGPROTO::SetStgSettings(const SETTINGS * s) -{ -for (size_t i = 0; i < dataParser.size(); i++) - { - dataParser[i]->SetStgSettings(s); - } -} -//-----------------------------------------------------------------------------