summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/Makefile.am2
-rw-r--r--src/bin/dhcp4/parser_context.h2
-rw-r--r--src/bin/dhcp4/simple_parser4.cc14
-rw-r--r--src/bin/dhcp6/parser_context.h1
-rw-r--r--src/bin/dhcp6/simple_parser6.cc14
5 files changed, 10 insertions, 23 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
index dff8c492ed..312996b2fd 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -20,6 +20,7 @@ nobase_dist_doc_DATA += examples/kea4/pgsql-reservations.json
nobase_dist_doc_DATA += examples/kea4/reservations.json
nobase_dist_doc_DATA += examples/kea4/several-subnets.json
nobase_dist_doc_DATA += examples/kea4/single-subnet.json
+nobase_dist_doc_DATA += examples/kea4/with-ddns.json
nobase_dist_doc_DATA += examples/kea6/advanced.json
nobase_dist_doc_DATA += examples/kea6/backends.json
nobase_dist_doc_DATA += examples/kea6/classify.json
@@ -35,6 +36,7 @@ nobase_dist_doc_DATA += examples/kea6/several-subnets.json
nobase_dist_doc_DATA += examples/kea6/simple.json
nobase_dist_doc_DATA += examples/kea6/softwire46.json
nobase_dist_doc_DATA += examples/kea6/stateless.json
+nobase_dist_doc_DATA += examples/kea6/with-ddns.json
devel:
mkdir -p html
diff --git a/src/bin/dhcp4/parser_context.h b/src/bin/dhcp4/parser_context.h
index 6f65360c0e..2df13e4f86 100644
--- a/src/bin/dhcp4/parser_context.h
+++ b/src/bin/dhcp4/parser_context.h
@@ -187,6 +187,8 @@ public:
///< Used while parsing content of Dhcp4.
DHCP4,
+ // not yet DHCP6,
+
///< Used while parsing content of Logging
LOGGING,
diff --git a/src/bin/dhcp4/simple_parser4.cc b/src/bin/dhcp4/simple_parser4.cc
index ce80900f0b..9a581a6bfb 100644
--- a/src/bin/dhcp4/simple_parser4.cc
+++ b/src/bin/dhcp4/simple_parser4.cc
@@ -123,17 +123,9 @@ size_t SimpleParser4::setAllDefaults(isc::data::ElementPtr global) {
ConstElementPtr d2_client = global->get("dhcp-ddns");
/// @todo - what if it's not in global? should we add it?
if (d2_client) {
- // Because "dhcp-ddns" is a MapElement and global->get()
- // returns a ConstElementPtr, then we get a map we can't
- // change. So go thru gyrations to create a non-const
- // map, update it with default values and then replace
- // the one in global with the new one. Ick.
- std::map<std::string, ConstElementPtr> d2_map;
- d2_client->getValue(d2_map);
- ElementPtr new_map(new MapElement());
- new_map->setValue(d2_map);
- cnt += SimpleParser::setDefaults(new_map, D2_CLIENT_CONFIG_DEFAULTS);
- global->set("dhcp-ddns", new_map);
+ // Get the mutable form of d2 client config
+ ElementPtr mutable_d2 = boost::const_pointer_cast<Element>(d2_client);
+ cnt += SimpleParser::setDefaults(mutable_d2, D2_CLIENT_CONFIG_DEFAULTS);
}
return (cnt);
diff --git a/src/bin/dhcp6/parser_context.h b/src/bin/dhcp6/parser_context.h
index ea260d398c..9a1ae41956 100644
--- a/src/bin/dhcp6/parser_context.h
+++ b/src/bin/dhcp6/parser_context.h
@@ -191,7 +191,6 @@ public:
DHCP6,
// not yet DHCP4,
- // not yet DHCP_DDNS,
///< Used while parsing content of Logging
LOGGING,
diff --git a/src/bin/dhcp6/simple_parser6.cc b/src/bin/dhcp6/simple_parser6.cc
index 48c5573afe..1840993fdc 100644
--- a/src/bin/dhcp6/simple_parser6.cc
+++ b/src/bin/dhcp6/simple_parser6.cc
@@ -125,17 +125,9 @@ size_t SimpleParser6::setAllDefaults(isc::data::ElementPtr global) {
ConstElementPtr d2_client = global->get("dhcp-ddns");
/// @todo - what if it's not in global? should we add it?
if (d2_client) {
- // Because "dhcp-ddns" is a MapElement and global->get()
- // returns a ConstElementPtr, then we get a map we can't
- // change. So go thru gyrations to create a non-const
- // map, update it with default values and then replace
- // the one in global with the new one. Ick.
- std::map<std::string, ConstElementPtr> d2_map;
- d2_client->getValue(d2_map);
- ElementPtr new_map(new MapElement());
- new_map->setValue(d2_map);
- cnt += SimpleParser::setDefaults(new_map, D2_CLIENT_CONFIG_DEFAULTS);
- global->set("dhcp-ddns", new_map);
+ // Get the mutable form of d2 client config
+ ElementPtr mutable_d2 = boost::const_pointer_cast<Element>(d2_client);
+ cnt += SimpleParser::setDefaults(mutable_d2, D2_CLIENT_CONFIG_DEFAULTS);
}
return (cnt);