]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[448-update-cb-cmds-to-handle-parameter-types] Extended SimpleRequiredKeywords with... 448-update-cb-cmds-to-handle-parameter-types
authorFrancis Dupont <fdupont@isc.org>
Wed, 6 Feb 2019 23:06:24 +0000 (00:06 +0100)
committerFrancis Dupont <fdupont@isc.org>
Tue, 19 Feb 2019 16:03:20 +0000 (11:03 -0500)
src/lib/cc/simple_parser.cc
src/lib/cc/tests/simple_parser_unittest.cc

index 94fbbfcfeb8622e0a0eb387efc9036ca8425497c..de2d30818929a77b9c688541e6cdcff2b08f28b1 100644 (file)
@@ -43,7 +43,8 @@ SimpleParser::checkKeywords(const SimpleKeywords& keywords,
             continue;
         }
         Element::types expected = keywords.at(entry.first);
-        if (entry.second->getType() == expected) {
+        if ((expected == Element::any) ||
+            (entry.second->getType() == expected)) {
             continue;
         }
         isc_throw(DhcpConfigError, "'" << entry.first << "' parameter is not "
index 94905064cbf4c4ef13fd2aa3cfd94fe84570f0e5..58aa40d6b859157be1213de8dd37c221a5019678 100644 (file)
@@ -22,7 +22,8 @@ const SimpleRequiredKeywords REQUIRED_KEYWORDS = { "foobar" };
 const SimpleKeywords KEYWORDS = {
     { "id",     Element::integer },
     { "prefix", Element::string },
-    { "map",    Element::map }
+    { "map",    Element::map },
+    { "any",    Element::any }
 };
 
 /// This table defines sample default values. Although these are DHCPv6
@@ -115,6 +116,8 @@ TEST_F(SimpleParserTest, checkKeywords) {
     EXPECT_NO_THROW(SimpleParser::checkKeywords(KEYWORDS, empty));
     ConstElementPtr id = Element::fromJSON("{ \"id\": 1 }");
     EXPECT_NO_THROW(SimpleParser::checkKeywords(KEYWORDS, id));
+    ConstElementPtr any = Element::fromJSON("{ \"any\": 1 }");
+    EXPECT_NO_THROW(SimpleParser::checkKeywords(KEYWORDS, any));
     ConstElementPtr bad_id = Element::fromJSON("{ \"id\": true }");
     EXPECT_THROW(SimpleParser::checkKeywords(KEYWORDS, bad_id),
                  DhcpConfigError);