X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/b3139bf3f37b3b0244efea8b4b5e5a7d0bc90095..389821ffc3891259fb41b2e9fe9b6f891ff24aa6:/stglibs/srvconf.lib/parsers/server_info.cpp diff --git a/stglibs/srvconf.lib/parsers/server_info.cpp b/stglibs/srvconf.lib/parsers/server_info.cpp index fbefb2d4..f0033611 100644 --- a/stglibs/srvconf.lib/parsers/server_info.cpp +++ b/stglibs/srvconf.lib/parsers/server_info.cpp @@ -29,18 +29,10 @@ using namespace STG; -namespace -{ - -const size_t UNAME_LEN = 256; -const size_t SERV_VER_LEN = 64; -const size_t DIRNAME_LEN = 16; - -} - -SERVER_INFO::PARSER::PARSER(CALLBACK f, void * d) +SERVER_INFO::PARSER::PARSER(CALLBACK f, void * d, const std::string & e) : callback(f), data(d), + encoding(e), depth(0), parsingAnswer(false) { @@ -48,7 +40,7 @@ SERVER_INFO::PARSER::PARSER(CALLBACK f, void * d) AddParser(propertyParsers, "version", info.version); AddParser(propertyParsers, "tariff", info.tariffType); AddParser(propertyParsers, "dir_num", info.dirNum); - AddParser(propertyParsers, "users_num", info.usersNum); + AddParser(propertyParsers, "user_num", info.usersNum); AddParser(propertyParsers, "tariff_num", info.tariffNum); for (size_t i = 0; i < DIR_NUM; i++) @@ -60,13 +52,13 @@ int SERVER_INFO::PARSER::ParseStart(const char *el, const char **attr) depth++; if (depth == 1) { - if (strcasecmp(el, "ServerInfo") == 0) + if (strcasecmp(el, "GetServerInfo") == 0) parsingAnswer = true; } else { if (depth == 2 && parsingAnswer) - if (!TryParse(propertyParsers, ToLower(el), attr)) + if (!TryParse(propertyParsers, ToLower(el), attr, encoding)) error = "Invalid parameter."; } return 0;