Commit 701c0d6d authored by Jelte Jansen's avatar Jelte Jansen
Browse files

[trac1004] clean up if-statement and don't use json for copy

parent d57f30ff
...@@ -479,7 +479,7 @@ public: ...@@ -479,7 +479,7 @@ public:
return (true); return (true);
} }
using Element::setValue; using Element::setValue;
bool setValue(std::map<std::string, ConstElementPtr>& v) { bool setValue(const std::map<std::string, ConstElementPtr>& v) {
m = v; m = v;
return (true); return (true);
} }
......
...@@ -271,18 +271,21 @@ getRelatedLoggers(ConstElementPtr loggers) { ...@@ -271,18 +271,21 @@ getRelatedLoggers(ConstElementPtr loggers) {
std::string cur_name = cur_logger->get("name")->stringValue(); std::string cur_name = cur_logger->get("name")->stringValue();
// if name is '*', or starts with '*.', replace * with root // if name is '*', or starts with '*.', replace * with root
// logger name // logger name
if (cur_name.length() > 0 && cur_name[0] == '*' && if (cur_name == "*" || cur_name.length() > 1 &&
!(cur_name.length() > 1 && cur_name[1] != '.')) { cur_name[0] == '*' && cur_name[1] == '.') {
cur_name = root_name + cur_name.substr(1); cur_name = root_name + cur_name.substr(1);
// now add it to the result list, but only if a logger with // now add it to the result list, but only if a logger with
// that name was not configured explicitely // that name was not configured explicitely
if (our_names.find(cur_name) == our_names.end()) { if (our_names.find(cur_name) == our_names.end()) {
// we substitute the name here already, but as // we substitute the name here already, but as
// we are dealing with consts, we copy the data // we are dealing with consts, we copy the data
// there's no direct copy (yet), but we can use JSON ElementPtr new_logger(Element::createMap());
ElementPtr new_logger = isc::data::Element::fromJSON(cur_logger->str()); // since we'll only be updating one first-level element,
ConstElementPtr new_name = Element::create(cur_name); // and we return as const again, a shallow map copy is
new_logger->set("name", new_name); // enough
new_logger->setValue(cur_logger->mapValue());
new_logger->set("name", Element::create(cur_name));
result->add(new_logger); result->add(new_logger);
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment