X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/17dab87336302938de1f031008cc4c4af31d2590..c3b507d1eb8a82f9eda3a5e7f7b2dd2f2e9bb4c0:/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 0de1cedd..eed03f30 100644 --- a/stglibs/srvconf.lib/parser_check_user.cpp +++ b/stglibs/srvconf.lib/parser_check_user.cpp @@ -32,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) @@ -48,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)