X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/4e95741287ce4385f16eaf9d621cedd4dccbcfe3..250a7d6e7a4c8ffd644931b7b3964289a8f99151:/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp?ds=sidebyside diff --git a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp index afcb6881..f7e6169e 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp @@ -480,7 +480,7 @@ while (1) if (ParseCommand()) return SendError(sock, "Bad command"); else - return SendDataAnswer(sock, currParser->GetAnswer()); + return SendDataAnswer(sock, GetDataAnswer()); } } //return 0; @@ -495,13 +495,13 @@ BLOWFISH_CTX ctx; InitContext(adminPassword.c_str(), ADM_PASSWD_LEN, &ctx); std::string::size_type pos = 0; -std::string::size_type length = answer.length(); +std::string::size_type length = answer.length() + 1; while (pos < length) { char buffer[1024]; std::string::size_type chunkLength = std::min(length - pos, sizeof(buffer)); EncryptString(buffer, answer.c_str() + pos, chunkLength, &ctx); - if (send(sock, buffer, chunkLength, 0) < 0) + if (send(sock, buffer, (chunkLength & ~7) < chunkLength ? chunkLength + 8 : chunkLength, 0) < 0) // Need to send data adjusted to the 8-byte boundary. return -1; pos += chunkLength; }