summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJelte Jansen <jelte@isc.org>2011-06-27 12:47:50 +0200
committerJelte Jansen <jelte@isc.org>2011-06-27 12:47:50 +0200
commit701c0d6d7c484c2f46951d23fba47c760363b7e4 (patch)
treef4d0468b44a23dcc4dd0f1ef602444ce865a6aa6 /src
parent[trac1004] typo (diff)
downloadkea-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.h2
-rw-r--r--src/lib/config/ccsession.cc15
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);
}
}