2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-30 13:37:55 +00:00

[#2826] Addressed review comments

This commit is contained in:
Marcin Siodelski 2023-06-29 19:29:59 +02:00
parent 6c7405719e
commit 53e319b51c
2 changed files with 13 additions and 0 deletions

View File

@ -579,6 +579,12 @@ SubnetConfigParser::parse(ConstElementPtr subnet, bool encapsulate_options) {
"subnet configuration failed: " << ex.what());
}
// We create subnet first and then parse the options straight into the subnet's
// CfgOption structure. Previously, we first parsed the options and then copied
// them into the CfgOption after creating the subnet but it had two issues. First,
// it cost performance. Second, copying options reset the isEncapsulated() flag.
// If the options have been encapsulated we want to preserve the flag to ensure
// they are not encapsulated several times.
ConstElementPtr options_params = subnet->get("option-data");
if (options_params) {
auto opt_parser = createOptionDataListParser();
@ -1136,6 +1142,12 @@ PdPoolParser::parse(PoolStoragePtr pools, ConstElementPtr pd_pool_,
<< " (" << pd_pool_->getPosition() << ")");
}
// We create subnet first and then parse the options straight into the subnet's
// CfgOption structure. Previously, we first parsed the options and then copied
// them into the CfgOption after creating the subnet but it had two issues. First,
// it cost performance. Second, copying options reset the isEncapsulated() flag.
// If the options have been encapsulated we want to preserve the flag to ensure
// they are not encapsulated several times.
ConstElementPtr option_data = pd_pool_->get("option-data");
if (option_data) {
auto opts_parser = createOptionDataListParser();

View File

@ -2054,6 +2054,7 @@ GenericHostDataSourceTest::testOptionsReservations4(const bool formatted,
ASSERT_NO_FATAL_FAILURE(HostDataSourceUtils::compareHosts(host, *hosts_by_subnet.begin()));
auto returned_host = *hosts_by_subnet.begin();
EXPECT_FALSE(returned_host->getCfgOption4()->isEncapsulated());
ASSERT_NO_THROW(returned_host->encapsulateOptions());
auto cfg_option = returned_host->getCfgOption4();