]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5297] Addressed extras
authorFrancis Dupont <fdupont@isc.org>
Sat, 14 Oct 2017 23:22:36 +0000 (01:22 +0200)
committerFrancis Dupont <fdupont@isc.org>
Sat, 14 Oct 2017 23:22:36 +0000 (01:22 +0200)
src/lib/dhcpsrv/parsers/dhcp_parsers.cc
src/lib/dhcpsrv/parsers/duid_config_parser.cc
src/lib/dhcpsrv/parsers/option_data_parser.cc
src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc

index 5d9233c5c52654e37d916a3700094738cc6e39f1..28c757ae58d51402a2fa4f41b439ecdc96e3e85e 100644 (file)
@@ -915,6 +915,7 @@ Subnet6ConfigParser::parse(ConstElementPtr subnet) {
     return (sn6ptr);
 }
 
+// Unused?
 void
 Subnet6ConfigParser::duplicate_option_warning(uint32_t code,
                                               asiolink::IOAddress& addr) {
index 355e4f7e719e8f19c455ce62c97c011a6b2858e4..4e0674b358d6e5dd514a9626ff9a1a0f413c9a0d 100644 (file)
@@ -27,6 +27,7 @@ void
 DUIDConfigParser::parse(const CfgDUIDPtr& cfg,
                         isc::data::ConstElementPtr duid_configuration) {
     if (!cfg) {
+        // Sanity check
         isc_throw(DhcpConfigError, "Must provide valid pointer to cfg when parsing duid");
     }
 
index 2773498276f4345f96dc95bd07d81c8e598c4b21..8280addd34559d19df5becf95341229a599aead7 100644 (file)
@@ -36,6 +36,7 @@ OptionDataParser::parse(isc::data::ConstElementPtr single_option) {
     std::pair<OptionDescriptor, std::string> opt = createOption(single_option);
 
     if (!opt.first.option_) {
+        // Should never happen (@todo: update message)
         isc_throw(isc::InvalidOperation,
             "parser logic error: no option has been configured and"
             " thus there is nothing to commit. Has build() been called?");
index 149c57b92e1dd3cff3bed44196d38dfe6c46859b..bbcb7edb7da57b7b3288b0779939404235068ee8 100644 (file)
@@ -779,6 +779,23 @@ TEST_F(ParseConfigTest, minimalOptionDataTest) {
     cfg.runCfgOptionsTest(family_, expected);
 }
 
+/// @brief Check parsing of unknown options fails.
+TEST_F(ParseConfigTest, unknownOptionDataTest) {
+
+    // Configuration string.
+    std::string config =
+        "{ \"option-data\": [ {"
+        "    \"name\": \"foo\","
+        "    \"data\": \"01\","
+        "    \"space\": \"bar\""
+        " } ]"
+        "}";
+
+    // Verify that the configuration string does not parse.
+    int rcode = parseConfiguration(config, true);
+    ASSERT_NE(0, rcode);
+}
+
 /// @brief Check parsing of options with invalid space fails.
 TEST_F(ParseConfigTest, badSpaceOptionDataTest) {