X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/17dab87336302938de1f031008cc4c4af31d2590..f384309c9c663a4b381d2e1a8545693514835395:/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..0cb37522 100644 --- a/stglibs/srvconf.lib/parser_check_user.cpp +++ b/stglibs/srvconf.lib/parser_check_user.cpp @@ -19,20 +19,22 @@ * Author : Maxim Mamontov */ -#include "stg/parser_check_user.h" +#include "parser_check_user.h" #include #include -PARSER_CHECK_USER::PARSER_CHECK_USER() +using namespace STG; + +CHECK_USER::PARSER::PARSER() : callback(NULL), data(NULL), depth(0) { } //----------------------------------------------------------------------------- -int PARSER_CHECK_USER::ParseStart(const char *el, const char **attr) +int CHECK_USER::PARSER::ParseStart(const char * el, const char ** attr) { depth++; if (depth == 1) @@ -41,19 +43,22 @@ if (depth == 1) return 0; } //----------------------------------------------------------------------------- -void PARSER_CHECK_USER::ParseEnd(const char *) +void CHECK_USER::PARSER::ParseEnd(const char *) { depth--; } //----------------------------------------------------------------------------- -void PARSER_CHECK_USER::ParseAnswer(const char *, const char **attr) +void CHECK_USER::PARSER::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) +void CHECK_USER::PARSER::SetCallback(CALLBACK f, void * d) { callback = f; data = d;