From: Maxim Mamontov Date: Tue, 8 Oct 2013 12:58:48 +0000 (+0300) Subject: Use simple parser fro CHG_ADMIN. X-Git-Url: https://git.stg.codes/stg.git/commitdiff_plain/9f529554bd6dfa4cba4027f51753db42326ab4d9 Use simple parser fro CHG_ADMIN. --- diff --git a/stglibs/srvconf.lib/parsers/chg_admin.cpp b/stglibs/srvconf.lib/parsers/chg_admin.cpp index de918514..445ea280 100644 --- a/stglibs/srvconf.lib/parsers/chg_admin.cpp +++ b/stglibs/srvconf.lib/parsers/chg_admin.cpp @@ -27,37 +27,6 @@ using namespace STG; -CHG_ADMIN::PARSER::PARSER(SIMPLE::CALLBACK f, void * d) - : callback(f), - data(d), - depth(0) -{ -} -//----------------------------------------------------------------------------- -int CHG_ADMIN::PARSER::ParseStart(const char *el, const char **attr) -{ -depth++; -if (depth == 1) - if (strcasecmp(el, "SetAdmin") == 0) - ParseAnswer(el, attr); -return 0; -} -//----------------------------------------------------------------------------- -void CHG_ADMIN::PARSER::ParseEnd(const char *) -{ -depth--; -} -//----------------------------------------------------------------------------- -void CHG_ADMIN::PARSER::ParseAnswer(const char * /*el*/, const char ** attr) -{ -if (!callback) - return; -if (attr && attr[0] && attr[1]) - callback(strcasecmp(attr[1], "ok") == 0, attr[1], data); -else - callback(false, "Invalid response.", data); -} - std::string CHG_ADMIN::Serialize(const ADMIN_CONF_RES & conf) { std::string params; diff --git a/stglibs/srvconf.lib/parsers/chg_admin.h b/stglibs/srvconf.lib/parsers/chg_admin.h index 9fd38104..c10332cd 100644 --- a/stglibs/srvconf.lib/parsers/chg_admin.h +++ b/stglibs/srvconf.lib/parsers/chg_admin.h @@ -34,21 +34,6 @@ namespace STG namespace CHG_ADMIN { -class PARSER: public STG::PARSER -{ -public: - PARSER(SIMPLE::CALLBACK f, void * data); - int ParseStart(const char * el, const char ** attr); - void ParseEnd(const char * el); - -private: - SIMPLE::CALLBACK callback; - void * data; - int depth; - - void ParseAnswer(const char * el, const char ** attr); -}; - std::string Serialize(const ADMIN_CONF_RES & conf); } // namespace CHG_ADMIN diff --git a/stglibs/srvconf.lib/servconf.cpp b/stglibs/srvconf.lib/servconf.cpp index e8e07e10..d885fae6 100644 --- a/stglibs/srvconf.lib/servconf.cpp +++ b/stglibs/srvconf.lib/servconf.cpp @@ -126,7 +126,7 @@ return pImpl->Exec("", f, int SERVCONF::ChgAdmin(const ADMIN_CONF_RES & conf, SIMPLE::CALLBACK f, void * data) { -return pImpl->Exec("", f, data); +return pImpl->Exec("ChgAdmin", "", f, data); } int SERVCONF::AddAdmin(const std::string & login, const ADMIN_CONF & conf, SIMPLE::CALLBACK f, void * data) @@ -134,7 +134,7 @@ int SERVCONF::AddAdmin(const std::string & login, const ADMIN_CONF & conf, SIMPL int res = pImpl->Exec("AddAdmin", "", f, data); if (res != st_ok) return res; -return pImpl->Exec("", f, data); +return pImpl->Exec("ChgAdmin", "", f, data); } int SERVCONF::DelAdmin(const std::string & login, SIMPLE::CALLBACK f, void * data)