diff options
author | Jelte Jansen <jelte@isc.org> | 2011-06-27 12:47:50 +0200 |
---|---|---|
committer | Jelte Jansen <jelte@isc.org> | 2011-06-27 12:47:50 +0200 |
commit | 701c0d6d7c484c2f46951d23fba47c760363b7e4 (patch) | |
tree | f4d0468b44a23dcc4dd0f1ef602444ce865a6aa6 /src | |
parent | [trac1004] typo (diff) | |
download | kea-701c0d6d7c484c2f46951d23fba47c760363b7e4.tar.xz kea-701c0d6d7c484c2f46951d23fba47c760363b7e4.zip |
[trac1004] clean up if-statement and don't use json for copy
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/cc/data.h | 2 | ||||
-rw-r--r-- | src/lib/config/ccsession.cc | 15 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/lib/cc/data.h b/src/lib/cc/data.h index 0a363f43a8..5c731e6b54 100644 --- a/src/lib/cc/data.h +++ b/src/lib/cc/data.h @@ -479,7 +479,7 @@ public: return (true); } using Element::setValue; - bool setValue(std::map<std::string, ConstElementPtr>& v) { + bool setValue(const std::map<std::string, ConstElementPtr>& v) { m = v; return (true); } diff --git a/src/lib/config/ccsession.cc b/src/lib/config/ccsession.cc index a1adcf8a15..894844243c 100644 --- a/src/lib/config/ccsession.cc +++ b/src/lib/config/ccsession.cc @@ -271,18 +271,21 @@ getRelatedLoggers(ConstElementPtr loggers) { std::string cur_name = cur_logger->get("name")->stringValue(); // if name is '*', or starts with '*.', replace * with root // logger name - if (cur_name.length() > 0 && cur_name[0] == '*' && - !(cur_name.length() > 1 && cur_name[1] != '.')) { + if (cur_name == "*" || cur_name.length() > 1 && + cur_name[0] == '*' && cur_name[1] == '.') { + cur_name = root_name + cur_name.substr(1); // now add it to the result list, but only if a logger with // that name was not configured explicitely if (our_names.find(cur_name) == our_names.end()) { // we substitute the name here already, but as // we are dealing with consts, we copy the data - // there's no direct copy (yet), but we can use JSON - ElementPtr new_logger = isc::data::Element::fromJSON(cur_logger->str()); - ConstElementPtr new_name = Element::create(cur_name); - new_logger->set("name", new_name); + ElementPtr new_logger(Element::createMap()); + // since we'll only be updating one first-level element, + // and we return as const again, a shallow map copy is + // enough + new_logger->setValue(cur_logger->mapValue()); + new_logger->set("name", Element::create(cur_name)); result->add(new_logger); } } |