X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/76fb825a64343da7a8aa9b16c5dbcab709504832..ac3670b33981698a02c5e95ab4f11cb3fe57562d:/stglibs/srvconf.lib/parsers/property.cpp?ds=sidebyside diff --git a/stglibs/srvconf.lib/parsers/property.cpp b/stglibs/srvconf.lib/parsers/property.cpp index 5d4577dc..eb9c2dfb 100644 --- a/stglibs/srvconf.lib/parsers/property.cpp +++ b/stglibs/srvconf.lib/parsers/property.cpp @@ -18,26 +18,26 @@ * Author : Maxim Mamontov */ -#include "property_parsers.h" +#include "property.h" #include -bool STG::CheckValue(const char ** attr) +bool STG::CheckValue(const char ** attr, const std::string & attrName) { -return attr && attr[0] && attr[1] && strcasecmp(attr[0], "value") == 0; +return attr && attr[0] && attr[1] && strcasecmp(attr[0], attrName.c_str()) == 0; } -bool STG::GetEncodedValue(const char ** attr, std::string & value) +bool STG::GetEncodedValue(const char ** attr, std::string & value, const std::string & attrName) { -if (!CheckValue(attr)) +if (!CheckValue(attr, attrName)) return false; Decode21str(value, attr[1]); return true; } -bool STG::GetIPValue(const char ** attr, uint32_t & value) +bool STG::GetIPValue(const char ** attr, uint32_t & value, const std::string & attrName) { -if (!CheckValue(attr)) +if (!CheckValue(attr, attrName)) return false; std::string ip(attr[1]); value = inet_strington(attr[1]); @@ -46,10 +46,10 @@ if (value == 0 && ip != "0.0.0.0") return true; } -bool STG::TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr) +bool STG::TryParse(PROPERTY_PARSERS & parsers, const std::string & name, const char ** attr, const std::string & toEncoding, const std::string & attrName) { PROPERTY_PARSERS::iterator it(parsers.find(name)); if (it != parsers.end()) - return it->second->Parse(attr); + return it->second->Parse(attr, attrName, toEncoding); return true; // Assume that non-existing params are ok. }