X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/f91192c77eec33a27dea7fcd0d451823ef478529..8383a049b4b6f7223dd833af18675696fc0663db:/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp diff --git a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp index 5b592cbc..6ca2b3da 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp @@ -26,14 +26,15 @@ * *******************************************************************/ -#include // close +#include "configproto.h" + +#include "stg/blowfish.h" #include #include #include // snprintf -#include "stg/blowfish.h" -#include "configproto.h" +#include // close #ifndef ENODATA // FreeBSD 4.* - suxx @@ -57,7 +58,7 @@ enum //----------------------------------------------------------------------------- int CONFIGPROTO::Prepare() { -list ansList; //óÀÄÁ ÂÕÄÅÔ ÐÏÍÅÝÅÎ ÏÔ×ÅÔ ÄÌÑ ÍÅÎÅÄÖÅÒÁ ËÌÉÅÎÔÏ× +std::list ansList; //óÀÄÁ ÂÕÄÅÔ ÐÏÍÅÝÅÎ ÏÔ×ÅÔ ÄÌÑ ÍÅÎÅÄÖÅÒÁ ËÌÉÅÎÔÏ× int res; struct sockaddr_in listenAddr; @@ -86,7 +87,7 @@ int lng = 1; if (0 != setsockopt(listenSocket, SOL_SOCKET, SO_REUSEADDR, &lng, 4)) { - errorStr = "Setsockopt failed. " + string(strerror(errno)); + errorStr = "Setsockopt failed. " + std::string(strerror(errno)); logger("setsockopt error: %s", strerror(errno)); return -1; } @@ -147,13 +148,11 @@ while (nonstop) &outerAddrLen); if (!nonstop) - { break; - } if (outerSocket < 0) { - logger("accept error: %s", strerror(errno)); + logger("accept error: %s", strerror(errno)); printfd(__FILE__, "accept failed\n"); continue; } @@ -253,11 +252,11 @@ while (pos < stgHdrLen) SendError("Bad request"); return -1; } - int ret = recv(sock, &buf[pos], stgHdrLen - pos, 0); + ssize_t ret = recv(sock, &buf[pos], static_cast(stgHdrLen) - static_cast(pos), 0); if (ret <= 0) { - if (ret < 0) - logger("recv error: %s", strerror(errno)); + if (ret < 0) + logger("recv error: %s", strerror(errno)); state = confHdr; return -1; } @@ -314,12 +313,12 @@ while (pos < ADM_LOGIN_LEN) { return ENODATA; } - int ret = recv(sock, &login[pos], ADM_LOGIN_LEN - pos, 0); + ssize_t ret = recv(sock, &login[pos], ADM_LOGIN_LEN - static_cast(pos), 0); if (ret <= 0) { // Error in network - logger("recv error: %s", strerror(errno)); + logger("recv error: %s", strerror(errno)); state = confHdr; return ENODATA; } @@ -364,13 +363,13 @@ while (pos < ADM_LOGIN_LEN) return ENODATA; } - int ret = recv(sock, &loginS[pos], ADM_LOGIN_LEN - pos, 0); + ssize_t ret = recv(sock, &loginS[pos], ADM_LOGIN_LEN - static_cast(pos), 0); if (ret <= 0) { // Network error printfd(__FILE__, "recv error: '%s'\n", strerror(errno)); - logger("recv error: %s", strerror(errno)); + logger("recv error: %s", strerror(errno)); state = confHdr; return ENODATA; } @@ -389,9 +388,7 @@ EnDecodeInit(currAdmin->GetPassword().c_str(), ADM_PASSWD_LEN, &ctx); char login[ADM_LOGIN_LEN + 1]; for (size_t i = 0; i < ADM_LOGIN_LEN / 8; i++) - { DecodeString(login + i * 8, loginS + i * 8, &ctx); - } if (currAdmin == admins->GetNoAdmin()) { @@ -407,6 +404,7 @@ if (strncmp(currAdmin->GetLogin().c_str(), login, ADM_LOGIN_LEN) != 0) } state = confData; +adminPassword = currAdmin->GetPassword(); return 0; } //----------------------------------------------------------------------------- @@ -451,11 +449,11 @@ while (1) break; } - int ret = recv(sock, &bufferS[pos], sizeof(bufferS) - pos, 0); + ssize_t ret = recv(sock, &bufferS[pos], sizeof(bufferS) - static_cast(pos), 0); if (ret < 0) { // Network error - logger("recv error: %s", strerror(errno)); + logger("recv error: %s", strerror(errno)); printfd(__FILE__, "recv error: '%s'\n", strerror(errno)); return -1; } @@ -485,12 +483,12 @@ while (1) return SendDataAnswer(sock); } } -return 0; +//return 0; } //----------------------------------------------------------------------------- int CONFIGPROTO::SendDataAnswer(int sock) { -list::iterator li; +std::list::iterator li; li = answerList.begin(); BLOWFISH_CTX ctx; @@ -500,7 +498,7 @@ char buffS[8]; int n = 0; int k = 0; -EnDecodeInit(currAdmin->GetPassword().c_str(), ADM_PASSWD_LEN, &ctx); +EnDecodeInit(adminPassword.c_str(), ADM_PASSWD_LEN, &ctx); while (li != answerList.end()) { @@ -513,11 +511,8 @@ while (li != answerList.end()) if (n % 8 == 0) { EncodeString(buffS, buff, &ctx); - int ret = send(sock, buffS, 8, 0); - if (ret < 0) - { + if (send(sock, buffS, 8, 0) < 0) return -1; - } } } k = 0;// new node @@ -533,7 +528,7 @@ EncodeString(buffS, buff, &ctx); answerList.clear(); -return send(sock, buffS, 8, 0); +return static_cast(send(sock, buffS, 8, 0)); } //----------------------------------------------------------------------------- void CONFIGPROTO::SendError(const char * text)