X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/e19d853bbf16b7ba8c58c71c1da488b9034e0fb3..c94bf8a43922c544b485e50ea1f37f41a45821f5:/stglibs/srvconf.lib/parser_check_user.cpp diff --git a/stglibs/srvconf.lib/parser_check_user.cpp b/stglibs/srvconf.lib/parser_check_user.cpp index 66db6cff..eed03f30 100644 --- a/stglibs/srvconf.lib/parser_check_user.cpp +++ b/stglibs/srvconf.lib/parser_check_user.cpp @@ -21,6 +21,8 @@ #include "stg/parser_check_user.h" +#include + #include PARSER_CHECK_USER::PARSER_CHECK_USER() @@ -30,7 +32,7 @@ PARSER_CHECK_USER::PARSER_CHECK_USER() { } //----------------------------------------------------------------------------- -int PARSER_CHECK_USER::ParseStart(const char *el, const char **attr) +int PARSER_CHECK_USER::ParseStart(const char * el, const char ** attr) { depth++; if (depth == 1) @@ -46,9 +48,12 @@ depth--; //----------------------------------------------------------------------------- void PARSER_CHECK_USER::ParseAnswer(const char *, const char **attr) { +if (!callback) + return; if (attr && attr[0] && attr[1] && strcasecmp(attr[0], "value") == 0) - if (callback) - callback(attr[1], data); + callback(strcasecmp(attr[1], "ok") == 0, attr[2] && attr[3] ? attr[3] : "", data); +else + callback(false, "Invalid response.", data); } //----------------------------------------------------------------------------- void PARSER_CHECK_USER::SetCallback(CALLBACK f, void * d)