]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[3389a] Moved re-detect default to simple_parse[46]
authorFrancis Dupont <fdupont@isc.org>
Tue, 4 Jul 2017 22:38:40 +0000 (00:38 +0200)
committerFrancis Dupont <fdupont@isc.org>
Tue, 4 Jul 2017 22:38:40 +0000 (00:38 +0200)
src/bin/dhcp4/json_config_parser.cc
src/bin/dhcp4/simple_parser4.cc
src/bin/dhcp4/simple_parser4.h
src/bin/dhcp6/json_config_parser.cc
src/bin/dhcp6/simple_parser6.cc
src/bin/dhcp6/simple_parser6.h

index 35d3f416129ed757600c5988d62129bd56e09575..e015280ca400521a6255305c0bfcbc3c521839f9 100644 (file)
@@ -488,9 +488,6 @@ configureDhcp4Server(Dhcpv4Srv&, isc::data::ConstElementPtr config_set,
                 if (check_only) {
                     // No re-detection in check only mode
                     ifaces_cfg->set("re-detect", Element::create(false));
-                } else if (!ifaces_cfg->contains("re-detect")) {
-                    // Else the default is to re-detect
-                    ifaces_cfg->set("re-detect", Element::create(true));
                 }
                 IfacesConfigParser parser(AF_INET);
                 CfgIfacePtr cfg_iface = srv_cfg->getCfgIface();
index 5487c7913a2ca95ea772162e7dabba841267745c..9dfec3f14f71238fa3b01e663e054076e8e009bd 100644 (file)
@@ -75,6 +75,11 @@ const SimpleDefaults SimpleParser4::SUBNET4_DEFAULTS = {
     { "4o6-subnet",       Element::string,  "" },
 };
 
+/// @brief This table defines default values for interfaces for DHCPv4.
+const SimpleDefaults SimpleParser4::IFACE4_DEFAULTS = {
+    { "re-detect", Element::boolean, "true" }
+};
+
 /// @brief List of parameters that can be inherited from the global to subnet4 scope.
 ///
 /// Some parameters may be defined on both global (directly in Dhcp4) and
@@ -120,6 +125,13 @@ size_t SimpleParser4::setAllDefaults(isc::data::ElementPtr global) {
         cnt += setListDefaults(subnets, SUBNET4_DEFAULTS);
     }
 
+    // Set the defaults for interfaces config
+    ConstElementPtr ifaces_cfg = global->get("interfaces-config");
+    if (ifaces_cfg) {
+        ElementPtr mutable_cfg = boost::const_pointer_cast<Element>(ifaces_cfg);
+        cnt += setDefaults(mutable_cfg, IFACE4_DEFAULTS);
+    }
+
     return (cnt);
 }
 
index ac612e9c5bde53e9f6537452462b2395a5529766..4e73e31204c60e4f230807866414420df3228f7b 100644 (file)
@@ -41,6 +41,7 @@ public:
     static const isc::data::SimpleDefaults OPTION4_DEFAULTS;
     static const isc::data::SimpleDefaults GLOBAL4_DEFAULTS;
     static const isc::data::SimpleDefaults SUBNET4_DEFAULTS;
+    static const isc::data::SimpleDefaults IFACE4_DEFAULTS;
     static const isc::data::ParamsList INHERIT_GLOBAL_TO_SUBNET4;
 };
 
index cb733389bc696335b9ee880c1c4fd5312e308911..2646f55e488c2b5ee9aba0634be062fb1ef57de7 100644 (file)
@@ -699,9 +699,6 @@ configureDhcp6Server(Dhcpv6Srv&, isc::data::ConstElementPtr config_set,
                 if (check_only) {
                     // No re-detection in check only mode
                     ifaces_cfg->set("re-detect", Element::create(false));
-                } else if (!ifaces_cfg->contains("re-detect")) {
-                    // Else the default is to re-detect
-                    ifaces_cfg->set("re-detect", Element::create(true));
                 }
                 IfacesConfigParser parser(AF_INET6);
                 CfgIfacePtr cfg_iface = srv_config->getCfgIface();
index c6883cd70d2bd9456f728eb087b1fbad8a79513f..89a14b5b062b6aff90dfa4f3340fd164b8b4b36a 100644 (file)
@@ -72,6 +72,11 @@ const SimpleDefaults SimpleParser6::SUBNET6_DEFAULTS = {
     { "interface-id",     Element::string,  "" },
 };
 
+/// @brief This table defines default values for interfaces for DHCPv6.
+const SimpleDefaults SimpleParser6::IFACE6_DEFAULTS = {
+    { "re-detect", Element::boolean, "true" }
+};
+
 /// @brief List of parameters that can be inherited from the global to subnet6 scope.
 ///
 /// Some parameters may be defined on both global (directly in Dhcp6) and
@@ -119,6 +124,13 @@ size_t SimpleParser6::setAllDefaults(isc::data::ElementPtr global) {
         cnt += setListDefaults(subnets, SUBNET6_DEFAULTS);
     }
 
+    // Set the defaults for interfaces config
+    ConstElementPtr ifaces_cfg = global->get("interfaces-config");
+    if (ifaces_cfg) {
+        ElementPtr mutable_cfg = boost::const_pointer_cast<Element>(ifaces_cfg);
+        cnt += setDefaults(mutable_cfg, IFACE6_DEFAULTS);
+    }
+
     return (cnt);
 }
 
index 590e11a5d259bd9ce8c432b2238d983ef1540cc8..755f0c2b86d63e3073a880ecf7c806b9d2d20072 100644 (file)
@@ -42,6 +42,7 @@ public:
     static const isc::data::SimpleDefaults OPTION6_DEFAULTS;
     static const isc::data::SimpleDefaults GLOBAL6_DEFAULTS;
     static const isc::data::SimpleDefaults SUBNET6_DEFAULTS;
+    static const isc::data::SimpleDefaults IFACE6_DEFAULTS;
     static const isc::data::ParamsList INHERIT_GLOBAL_TO_SUBNET6;
 };