From: Francis Dupont Date: Sat, 14 Oct 2017 23:22:36 +0000 (+0200) Subject: [5297] Addressed extras X-Git-Tag: Kea-1.3.0~2^2~1^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4f6aead24f2978ae65bcce2b3cafbde482cac4b9;p=thirdparty%2Fkea.git [5297] Addressed extras --- diff --git a/src/lib/dhcpsrv/parsers/dhcp_parsers.cc b/src/lib/dhcpsrv/parsers/dhcp_parsers.cc index 5d9233c5c5..28c757ae58 100644 --- a/src/lib/dhcpsrv/parsers/dhcp_parsers.cc +++ b/src/lib/dhcpsrv/parsers/dhcp_parsers.cc @@ -915,6 +915,7 @@ Subnet6ConfigParser::parse(ConstElementPtr subnet) { return (sn6ptr); } +// Unused? void Subnet6ConfigParser::duplicate_option_warning(uint32_t code, asiolink::IOAddress& addr) { diff --git a/src/lib/dhcpsrv/parsers/duid_config_parser.cc b/src/lib/dhcpsrv/parsers/duid_config_parser.cc index 355e4f7e71..4e0674b358 100644 --- a/src/lib/dhcpsrv/parsers/duid_config_parser.cc +++ b/src/lib/dhcpsrv/parsers/duid_config_parser.cc @@ -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"); } diff --git a/src/lib/dhcpsrv/parsers/option_data_parser.cc b/src/lib/dhcpsrv/parsers/option_data_parser.cc index 2773498276..8280addd34 100644 --- a/src/lib/dhcpsrv/parsers/option_data_parser.cc +++ b/src/lib/dhcpsrv/parsers/option_data_parser.cc @@ -36,6 +36,7 @@ OptionDataParser::parse(isc::data::ConstElementPtr single_option) { std::pair 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?"); diff --git a/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc b/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc index 149c57b92e..bbcb7edb7d 100644 --- a/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc +++ b/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc @@ -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) {