X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/186fb2b18b89a0280b8cc4b5ea8f7a59d3bd0853..91002d861d8e0729e84f9ef65a19001d515d7dbe:/projects/sgconf/xml.cpp?ds=sidebyside diff --git a/projects/sgconf/xml.cpp b/projects/sgconf/xml.cpp index ec8b9178..abf2ccc6 100644 --- a/projects/sgconf/xml.cpp +++ b/projects/sgconf/xml.cpp @@ -1,10 +1,14 @@ #include "xml.h" +#include "api_action.h" +#include "options.h" #include "config.h" #include "stg/servconf.h" #include +#include +#include #include @@ -52,19 +56,7 @@ if (el != NULL) std::cout << Indent(state->level) << "\n"; } -void RawXMLCallback(bool result, const std::string & reason, const std::string & response, void * /*data*/) -{ -if (!result) - { - std::cerr << "Failed to get raw XML response. Reason: '" << reason << "'." << std::endl; - return; - } -SGCONF::PrintXML(response); -} - -} - -void SGCONF::PrintXML(const std::string& xml) +void PrintXML(const std::string& xml) { ParserState state = { 0 }; @@ -81,13 +73,33 @@ if (XML_Parse(parser, xml.c_str(), xml.length(), true) == XML_STATUS_ERROR) XML_ParserFree(parser); } -bool SGCONF::RawXMLFunction(const SGCONF::CONFIG & config, - const std::string & arg, - const std::map & /*options*/) +void RawXMLCallback(bool result, const std::string & reason, const std::string & response, void * /*data*/) +{ +if (!result) + { + std::cerr << "Failed to get raw XML response. Reason: '" << reason << "'." << std::endl; + return; + } +PrintXML(response); +} + +bool RawXMLFunction(const SGCONF::CONFIG & config, + const std::string & arg, + const std::map & /*options*/) +{ +STG::SERVCONF proto(config.server.data(), + config.port.data(), + config.localAddress.data(), + config.localPort.data(), + config.userName.data(), + config.userPass.data()); +return proto.RawXML(arg, RawXMLCallback, NULL) == STG::st_ok; +} + +} + +void SGCONF::AppendXMLOptionBlock(COMMANDS & commands, OPTION_BLOCKS & blocks) { - STG::SERVCONF proto(config.server.data(), - config.port.data(), - config.userName.data(), - config.userPass.data()); - return proto.RawXML(arg, RawXMLCallback, NULL) == STG::st_ok; +blocks.Add("Raw XML") + .Add("r", "raw", SGCONF::MakeAPIAction(commands, "", RawXMLFunction), "\tmake raw XML request"); }