X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8569ecdc2c9368dc0fe650b901cce7b37337ffec..908dee0db9288bb455e9f1b68dd81ab50897a677:/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 8a78fe76..6e9fc72c 100644 --- a/stglibs/srvconf.lib/parsers/property.cpp +++ b/stglibs/srvconf.lib/parsers/property.cpp @@ -22,22 +22,22 @@ #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 & fromEncoding, 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, fromEncoding); return true; // Assume that non-existing params are ok. }