From 760c0ea6e896fd918bfd096a06e334e769041db2 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Sat, 18 Dec 2010 16:21:16 +0200 Subject: [PATCH] =?utf8?q?=D0=9E=D0=B1=D0=BB=D0=B0=D1=81=D1=82=D1=8C=20?= =?utf8?q?=D0=B2=D0=B8=D0=B4=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=96=20outerSo?= =?utf8?q?cket,=20outerAddr=20=D1=96=20outerAddrLen=20=D0=B7=D0=B2=D1=83?= =?utf8?q?=D0=B6=D0=B5=D0=BD=D0=BE=20=D0=B4=D0=BE=20=D0=BE=D0=B4=D0=BD?= =?utf8?q?=D0=BE=D0=B3=D0=BE=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=83=20?= =?utf8?q?=D1=83=20=D0=BF=D0=BB=D0=B0=D0=B3=D1=96=D0=BD=D1=96=20=D0=BA?= =?utf8?q?=D0=BE=D0=BD=D1=84=D1=96=D0=B3=D1=83=D1=80=D0=B0=D1=82=D0=BE?= =?utf8?q?=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../configuration/sgconfig/configproto.cpp | 52 ------ .../configuration/sgconfig/configproto.h | 10 -- .../plugins/configuration/sgconfig/rsconf.cpp | 152 ++++-------------- 3 files changed, 28 insertions(+), 186 deletions(-) diff --git a/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp b/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp index c6218e94..5b94444f 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/configproto.cpp @@ -49,7 +49,6 @@ else for (unsigned int i = 0; i < cp->dataParser.size(); i++) { cp->dataParser[i]->SetAnswerList(&cp->answerList); - //cp->currAdmin->SetAdminIP(cp->GetAdminIP()); cp->dataParser[i]->SetCurrAdmin(cp->currAdmin); cp->dataParser[i]->Reset(); if (cp->dataParser[i]->ParseStart(data, el, attr) == 0) @@ -94,13 +93,8 @@ CONFIGPROTO::CONFIGPROTO() state(0), currAdmin(), WriteServLog(GetStgLogger()), - outerSocket(0), listenSocket(0), admins(NULL), - //users(NULL), - //tariffs(NULL), - //store(NULL), - //settings(NULL), currParser(NULL) { dataParser.push_back(&parserGetServInfo); @@ -131,7 +125,6 @@ if (!xmlParser) exit(1); } -//XML_SetElementHandler(parser, ParseXMLStart, ParseXMLEnd); } //----------------------------------------------------------------------------- CONFIGPROTO::~CONFIGPROTO() @@ -199,11 +192,6 @@ void CONFIGPROTO::SetPort(uint16_t p) port = p; } //----------------------------------------------------------------------------- -/*void CONFIGPROTO::SetHostAllow(HOSTALLOW *) -{ -//hostAllow = ha; -}*/ -//----------------------------------------------------------------------------- void CONFIGPROTO::SetAdmins(ADMINS * a) { admins = a; @@ -216,7 +204,6 @@ for (unsigned int i = 0; i < dataParser.size(); i++) //----------------------------------------------------------------------------- void CONFIGPROTO::SetUsers(USERS * u) { -//users = u; for (unsigned int i = 0; i < dataParser.size(); i++) { dataParser[i]->SetUsers(u); @@ -226,7 +213,6 @@ for (unsigned int i = 0; i < dataParser.size(); i++) //----------------------------------------------------------------------------- void CONFIGPROTO::SetTariffs(TARIFFS * t) { -//tariffs = t; for (unsigned int i = 0; i < dataParser.size(); i++) { dataParser[i]->SetTariffs(t); @@ -235,7 +221,6 @@ for (unsigned int i = 0; i < dataParser.size(); i++) //----------------------------------------------------------------------------- void CONFIGPROTO::SetStore(BASE_STORE * s) { -//store = s; for (unsigned int i = 0; i < dataParser.size(); i++) { dataParser[i]->SetStore(s); @@ -244,49 +229,12 @@ for (unsigned int i = 0; i < dataParser.size(); i++) //----------------------------------------------------------------------------- void CONFIGPROTO::SetStgSettings(const SETTINGS * s) { -//settings = s; for (unsigned int i = 0; i < dataParser.size(); i++) { dataParser[i]->SetStgSettings(s); } } //----------------------------------------------------------------------------- -/*void CONFIGPROTO::Start() -{ -finished = false; -threadExited = false; -status = starting; - -xmlParser = XML_ParserCreate(NULL); - -if (!xmlParser) - { - WriteServLog("Couldn't allocate memory for parser."); - } - -pthread_create(&thrReciveSendConf, NULL, ReciveSendConf, this); -status = started; -}*/ -//----------------------------------------------------------------------------- -/*int CONFIGPROTO::Stop() -{ -nonstop = true; -close(outerSocket); -return 0; -}*/ -//----------------------------------------------------------------------------- -/*void CONFIGPROTO::Restart() -{ -//Stop(); -//Start(); -}*/ -//----------------------------------------------------------------------------- -/*CONF_STATUS CONFIGPROTO::Status() -{ -//return status; -} -//----------------------------------------------------------------------------- -*/ const string & CONFIGPROTO::GetStrError() const { return errorStr; diff --git a/projects/stargazer/plugins/configuration/sgconfig/configproto.h b/projects/stargazer/plugins/configuration/sgconfig/configproto.h index 35e54105..96e976c8 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/configproto.h +++ b/projects/stargazer/plugins/configuration/sgconfig/configproto.h @@ -58,13 +58,11 @@ public: ~CONFIGPROTO(); void SetPort(uint16_t port); - //void SetHostAllow(HOSTALLOW * ha); void SetAdmins(ADMINS * a); void SetUsers(USERS * u); void SetTariffs(TARIFFS * t); void SetStore(BASE_STORE * s); void SetStgSettings(const SETTINGS * s); - //const string & GetAdminLogin(); uint32_t GetAdminIP() const; int Prepare(); int Stop(); @@ -93,14 +91,10 @@ private: pthread_t thrReciveSendConf; bool nonstop; int state; - //HOSTALLOW * hostAllow; ADMIN currAdmin; STG_LOGGER & WriteServLog; - int outerSocket; int listenSocket; - struct sockaddr_in outerAddr; - socklen_t outerAddrLen; PARSER_GET_SERVER_INFO parserGetServInfo; @@ -123,10 +117,6 @@ private: PARSER_CHG_TARIFF parserChgTariff; ADMINS * admins; - //USERS * users; - //TARIFFS * tariffs; - //BASE_STORE * store; - //const SETTINGS * settings; BASE_PARSER * currParser; vector dataParser; diff --git a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp index 8ceb7e70..520aebf7 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp @@ -26,20 +26,6 @@ * *******************************************************************/ -/*#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include */ - #include #include @@ -109,13 +95,6 @@ if (res == -1) errorStr = "Listen admin socket failed"; return -1; } -outerAddrLen = sizeof(outerAddr); - -/*if (0 != fcntl(listenSocket, F_SETFL, O_NONBLOCK)) - { - errorStr = "fcntl error!"; - return -1; - }*/ errorStr = ""; nonstop = true; @@ -134,7 +113,7 @@ addr.sin_family = PF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr("127.0.0.1"); -addrLen = sizeof(outerAddr); +addrLen = sizeof(addr); sock = socket(PF_INET, SOCK_STREAM, 0); connect(sock, (sockaddr*)&addr, addrLen); close(sock); @@ -160,86 +139,81 @@ cp->state = confHdr; while (cp->nonstop) { cp->state = confHdr; - cp->outerSocket = accept(cp->listenSocket, - (struct sockaddr*)(&cp->outerAddr), - &cp->outerAddrLen); + struct sockaddr_in outerAddr; + socklen_t outerAddrLen(sizeof(outerAddr)); + int outerSocket = accept(cp->listenSocket, + (struct sockaddr*)(&outerAddr), + &outerAddrLen); if (!cp->nonstop) { continue; } - if (cp->outerSocket == -1) + if (outerSocket == -1) { printfd(__FILE__, "accept failed\n"); usleep(100000); continue; } - cp->adminIP = *(unsigned int*)&(cp->outerAddr.sin_addr); - - /* TODO - if (!cp->hostAllow->HostAllowed(cp->adminIP)) - { - close(outerSocket); - continue; - }*/ + cp->adminIP = *(unsigned int*)&(outerAddr.sin_addr); - printfd(__FILE__, "Connection accepted from %s\n", inet_ntostring(cp->outerAddr.sin_addr.s_addr).c_str()); + printfd(__FILE__, "Connection accepted from %s\n", inet_ntostring(outerAddr.sin_addr.s_addr).c_str()); if (cp->state == confHdr) { - if (cp->RecvHdr(cp->outerSocket) < 0) + if (cp->RecvHdr(outerSocket) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } if (cp->state == confLogin) { - if (cp->SendHdrAnswer(cp->outerSocket, ans_ok) < 0) + if (cp->SendHdrAnswer(outerSocket, ans_ok) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } - if (cp->RecvLogin(cp->outerSocket) < 0) + if (cp->RecvLogin(outerSocket) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } if (cp->state == confLoginCipher) { - if (cp->SendLoginAnswer(cp->outerSocket, ans_ok) < 0) + if (cp->SendLoginAnswer(outerSocket, ans_ok) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } - if (cp->RecvLoginS(cp->outerSocket) < 0) + if (cp->RecvLoginS(outerSocket) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } if (cp->state == confData) { - if (cp->SendLoginSAnswer(cp->outerSocket, ans_ok) < 0) + if (cp->SendLoginSAnswer(outerSocket, ans_ok) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } - if (cp->RecvData(cp->outerSocket) < 0) + if (cp->RecvData(outerSocket) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } cp->state = confHdr; } else { - if (cp->SendLoginSAnswer(cp->outerSocket, ans_err) < 0) + if (cp->SendLoginSAnswer(outerSocket, ans_err) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } cp->WriteLogAccessFailed(cp->adminIP); @@ -253,9 +227,9 @@ while (cp->nonstop) else { cp->WriteLogAccessFailed(cp->adminIP); - if (cp->SendHdrAnswer(cp->outerSocket, ans_err) < 0) + if (cp->SendHdrAnswer(outerSocket, ans_err) < 0) { - close(cp->outerSocket); + close(outerSocket); continue; } } @@ -264,7 +238,7 @@ while (cp->nonstop) { cp->WriteLogAccessFailed(cp->adminIP); } - close(cp->outerSocket); + close(outerSocket); } return NULL; @@ -333,20 +307,6 @@ int ret; memset(login, 0, ADM_LOGIN_LEN + 1); -//printfd(__FILE__, "RecvLogin\n"); - -/*for (int i = 0; i < ADM_LOGIN_LEN; i++) - { - ret = recv(sock, &login[i], 1, 0); - - if (ret <= 0) - { - close(sock); - state = confHdr; - return ENODATA; - } - }*/ - ret = recv(sock, login, ADM_LOGIN_LEN, 0); if (ret < 0) @@ -399,21 +359,6 @@ int ret; BLOWFISH_CTX ctx; memset(loginS, 0, ADM_LOGIN_LEN + 1); -//printfd(__FILE__, "RecvLoginS\n"); - -/*for (int i = 0; i < ADM_LOGIN_LEN; i++) - { - ret = recv(sock, &loginS[i], 1, 0); - - if (ret <= 0) - { - //printfd(__FILE__, "RecvLoginS close\n"); - close(sock); - state = confHdr; - return ENODATA; - } - }*/ - int total = 0; while (total < ADM_LOGIN_LEN) @@ -432,16 +377,6 @@ while (total < ADM_LOGIN_LEN) total += ret; } -// TODO: implement select on socket -/*if (total < ADM_LOGIN_LEN) - { - // Protocol error - printfd(__FILE__, "Protocol error. Need %d bytes of cryptologin. Got %d bytes.\n", ADM_LOGIN_LEN, ret); - close(sock); - state = confHdr; - return ENODATA; - }*/ - if (currAdmin.GetLogin() == "") { state = confHdr; @@ -499,8 +434,6 @@ return 0; //----------------------------------------------------------------------------- int CONFIGPROTO::RecvData(int sock) { -//printfd(__FILE__, "RecvData\n"); -//int n = 0; int ret; char bufferS[8]; char buffer[9]; @@ -514,13 +447,6 @@ EnDecodeInit(currAdmin.GetPassword().c_str(), ADM_PASSWD_LEN, &ctx); while (1) { - /*ret = recv(sock, &bufferS[n++], 1, 0); - if (ret <= 0) - { - //printfd(__FILE__, "RecvData close\n"); - close(sock); - return 0; - }*/ int total = 0; bool done = false; while (total < 8) @@ -557,25 +483,6 @@ while (1) } return SendDataAnswer(sock); } - - /*if (n == 8) - { - n = 0; - DecodeString(buffer, bufferS, &ctx); - requestList.push_back(std::string(buffer, 8)); - for (int j = 0; j < 8; j++) - { - if (buffer[j] == 0) - { - // ëÏÎÅà ÐÏÓÙÌËÉ - if (ParseCommand()) - { - SendError("Bad command"); - } - return SendDataAnswer(sock); - } - } - }*/ } return 0; } @@ -642,6 +549,3 @@ void CONFIGPROTO::WriteLogAccessFailed(uint32_t ip) WriteServLog("Admin's connect failed. IP %s", inet_ntostring(ip).c_str()); } //----------------------------------------------------------------------------- - - - -- 2.44.2