summaryrefslogtreecommitdiffstats
path: root/src/bin
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2024-06-02 17:00:55 +0200
committerFrancis Dupont <fdupont@isc.org>2024-06-14 22:44:34 +0200
commit58cc9eb76c08598301610ff4c0340efa5b681601 (patch)
tree2360434c50680599c4a0f7e74e2cb62fda69f391 /src/bin
parent[#3366] Fixed failures in CfgIface UTs (diff)
downloadkea-58cc9eb76c08598301610ff4c0340efa5b681601.tar.xz
kea-58cc9eb76c08598301610ff4c0340efa5b681601.zip
[#2755] Code done, doc to update
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/dhcp4/dhcp4_srv.cc12
-rw-r--r--src/bin/dhcp4/tests/dhcp4_srv_unittest.cc116
-rw-r--r--src/bin/dhcp4/tests/dhcp4_test_utils.cc26
-rw-r--r--src/bin/dhcp4/tests/inform_unittest.cc8
-rw-r--r--src/bin/dhcp6/tests/dhcp6_srv_unittest.cc7
5 files changed, 51 insertions, 118 deletions
diff --git a/src/bin/dhcp4/dhcp4_srv.cc b/src/bin/dhcp4/dhcp4_srv.cc
index dbbc728327..664a0ecdbc 100644
--- a/src/bin/dhcp4/dhcp4_srv.cc
+++ b/src/bin/dhcp4/dhcp4_srv.cc
@@ -4392,16 +4392,8 @@ Dhcpv4Srv::recoverStashedAgentOption(const Pkt4Ptr& query) {
}
vector<uint8_t> rai_data;
str::decodeFormattedHexString(rai_hex, rai_data);
- static OptionDefinitionPtr rai_def;
- if (!rai_def) {
- rai_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_AGENT_OPTIONS);
- }
- if (!rai_def) {
- // Should not happen.
- return;
- }
- OptionCustomPtr rai(new OptionCustom(*rai_def, Option::V4, rai_data));
+ static const OptionDefinition& rai_def = LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF();
+ OptionCustomPtr rai(new OptionCustom(rai_def, Option::V4, rai_data));
// unpackOptions is a bit too flexible so check if it got something...
if (!rai || rai->getOptions().empty()) {
return;
diff --git a/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc b/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
index b97776e72e..a044fadabb 100644
--- a/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
+++ b/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
@@ -304,10 +304,8 @@ TEST_F(Dhcpv4SrvTest, adjustIfaceDataRelayPort) {
req->setRemotePort(1234);
// Add a RAI relay-port sub-option (the only difference with the previous test).
- OptionDefinitionPtr rai_def =
- LibDHCP::getOptionDef(DHCP4_OPTION_SPACE, DHO_DHCP_AGENT_OPTIONS);
- ASSERT_TRUE(rai_def);
- OptionCustomPtr rai(new OptionCustom(*rai_def, Option::V4));
+ const OptionDefinition& rai_def = LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF();
+ OptionCustomPtr rai(new OptionCustom(rai_def, Option::V4));
ASSERT_TRUE(rai);
req->addOption(rai);
OptionPtr relay_port(new Option(Option::V4, RAI_OPTION_RELAY_PORT));
@@ -880,10 +878,8 @@ TEST_F(Dhcpv4SrvTest, initResponse) {
// client-id echo is optional
// rai echo is done in relayAgentInfoEcho
// Do subnet selection option
- OptionDefinitionPtr sbnsel_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_SUBNET_SELECTION);
- ASSERT_TRUE(sbnsel_def);
- OptionCustomPtr sbnsel(new OptionCustom(*sbnsel_def, Option::V4));
+ const OptionDefinition& sbnsel_def = LibDHCP::DHO_SUBNET_SELECTION_DEF();
+ OptionCustomPtr sbnsel(new OptionCustom(sbnsel_def, Option::V4));
ASSERT_TRUE(sbnsel);
sbnsel->writeAddress(IOAddress("192.0.2.3"));
query->addOption(sbnsel);
@@ -1081,11 +1077,9 @@ TEST_F(Dhcpv4SrvTest, sanityCheckDiscover) {
ASSERT_NO_THROW(srv.processDiscover(pkt));
// Now let's add a server-id. This should throw.
- OptionDefinitionPtr server_id_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_SERVER_IDENTIFIER);
- ASSERT_TRUE(server_id_def);
+ const OptionDefinition& server_id_def = LibDHCP::DHO_DHCP_SERVER_IDENTIFIER_DEF();
- OptionCustomPtr server_id(new OptionCustom(*server_id_def, Option::V4));
+ OptionCustomPtr server_id(new OptionCustom(server_id_def, Option::V4));
server_id->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(server_id);
EXPECT_THROW_MSG(srv.processDiscover(pkt), RFCViolation,
@@ -1113,10 +1107,8 @@ TEST_F(Dhcpv4SrvTest, sanityCheckRequest) {
EXPECT_NO_THROW(srv.processRequest(pkt));
// Now let's add a requested address. This should not throw.
- OptionDefinitionPtr req_addr_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_REQUESTED_ADDRESS);
- ASSERT_TRUE(req_addr_def);
- OptionCustomPtr req_addr(new OptionCustom(*req_addr_def, Option::V4));
+ const OptionDefinition& req_addr_def = LibDHCP::DHO_DHCP_REQUESTED_ADDRESS_DEF();
+ OptionCustomPtr req_addr(new OptionCustom(req_addr_def, Option::V4));
req_addr->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(req_addr);
ASSERT_NO_THROW(srv.processRequest(pkt));
@@ -1128,11 +1120,9 @@ TEST_F(Dhcpv4SrvTest, sanityCheckRequest) {
ASSERT_NO_THROW(srv.processRequest(pkt));
// Now let's add a server-id. This should not throw.
- OptionDefinitionPtr server_id_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_SERVER_IDENTIFIER);
- ASSERT_TRUE(server_id_def);
+ const OptionDefinition& server_id_def = LibDHCP::DHO_DHCP_SERVER_IDENTIFIER_DEF();
- OptionCustomPtr server_id(new OptionCustom(*server_id_def, Option::V4));
+ OptionCustomPtr server_id(new OptionCustom(server_id_def, Option::V4));
server_id->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(server_id);
EXPECT_NO_THROW(srv.processRequest(pkt));
@@ -1160,10 +1150,8 @@ TEST_F(Dhcpv4SrvTest, sanityCheckDecline) {
" sent from [hwtype=1 00:fe:fe:fe:fe:fe], cid=[no info], tid=0x4d2");
// Now let's add a requested address. This should not throw.
- OptionDefinitionPtr req_addr_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_REQUESTED_ADDRESS);
- ASSERT_TRUE(req_addr_def);
- OptionCustomPtr req_addr(new OptionCustom(*req_addr_def, Option::V4));
+ const OptionDefinition& req_addr_def = LibDHCP::DHO_DHCP_REQUESTED_ADDRESS_DEF();
+ OptionCustomPtr req_addr(new OptionCustom(req_addr_def, Option::V4));
req_addr->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(req_addr);
ASSERT_NO_THROW(srv.processDecline(pkt));
@@ -1175,11 +1163,9 @@ TEST_F(Dhcpv4SrvTest, sanityCheckDecline) {
ASSERT_NO_THROW(srv.processDecline(pkt));
// Now let's add a server-id. This should not throw.
- OptionDefinitionPtr server_id_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_SERVER_IDENTIFIER);
- ASSERT_TRUE(server_id_def);
+ const OptionDefinition& server_id_def = LibDHCP::DHO_DHCP_SERVER_IDENTIFIER_DEF();
- OptionCustomPtr server_id(new OptionCustom(*server_id_def, Option::V4));
+ OptionCustomPtr server_id(new OptionCustom(server_id_def, Option::V4));
server_id->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(server_id);
EXPECT_NO_THROW(srv.processDecline(pkt));
@@ -1209,11 +1195,9 @@ TEST_F(Dhcpv4SrvTest, sanityCheckRelease) {
ASSERT_NO_THROW(srv.processRelease(pkt));
// Now let's add a server-id. This should not throw.
- OptionDefinitionPtr server_id_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_SERVER_IDENTIFIER);
- ASSERT_TRUE(server_id_def);
+ const OptionDefinition& server_id_def = LibDHCP::DHO_DHCP_SERVER_IDENTIFIER_DEF();
- OptionCustomPtr server_id(new OptionCustom(*server_id_def, Option::V4));
+ OptionCustomPtr server_id(new OptionCustom(server_id_def, Option::V4));
server_id->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(server_id);
EXPECT_NO_THROW(srv.processRelease(pkt));
@@ -1239,10 +1223,8 @@ TEST_F(Dhcpv4SrvTest, sanityCheckInform) {
ASSERT_NO_THROW(srv.processInform(pkt));
// Now let's add a requested address. This should not throw.
- OptionDefinitionPtr req_addr_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_REQUESTED_ADDRESS);
- ASSERT_TRUE(req_addr_def);
- OptionCustomPtr req_addr(new OptionCustom(*req_addr_def, Option::V4));
+ const OptionDefinition& req_addr_def = LibDHCP::DHO_DHCP_REQUESTED_ADDRESS_DEF();
+ OptionCustomPtr req_addr(new OptionCustom(req_addr_def, Option::V4));
req_addr->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(req_addr);
ASSERT_NO_THROW(srv.processInform(pkt));
@@ -1254,11 +1236,9 @@ TEST_F(Dhcpv4SrvTest, sanityCheckInform) {
ASSERT_NO_THROW(srv.processInform(pkt));
// Now let's add a server-id. This should not throw.
- OptionDefinitionPtr server_id_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_SERVER_IDENTIFIER);
- ASSERT_TRUE(server_id_def);
+ const OptionDefinition& server_id_def = LibDHCP::DHO_DHCP_SERVER_IDENTIFIER_DEF();
- OptionCustomPtr server_id(new OptionCustom(*server_id_def, Option::V4));
+ OptionCustomPtr server_id(new OptionCustom(server_id_def, Option::V4));
server_id->writeAddress(IOAddress("192.0.2.3"));
pkt->addOption(server_id);
EXPECT_NO_THROW(srv.processInform(pkt));
@@ -2643,13 +2623,11 @@ TEST_F(Dhcpv4SrvTest, acceptServerId) {
// Remove the server identifier.
ASSERT_NO_THROW(pkt->delOption(DHO_DHCP_SERVER_IDENTIFIER));
- OptionDefinitionPtr rai_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_AGENT_OPTIONS);
-
+ const OptionDefinition& rai_def = LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF();
OptionBuffer override_server_id_buf(IOAddress("10.0.0.128").toBytes());
// Create RAI option.
- OptionCustomPtr rai(new OptionCustom(*rai_def, Option::V4));
+ OptionCustomPtr rai(new OptionCustom(rai_def, Option::V4));
OptionPtr rai_override_server_id(new Option(Option::V4,
RAI_OPTION_SERVER_ID_OVERRIDE,
override_server_id_buf));
@@ -4487,10 +4465,8 @@ TEST_F(Dhcpv4SrvTest, relayLinkSelect) {
dis->addOption(clientid);
// Let's create a Relay Agent Information option
- OptionDefinitionPtr rai_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_AGENT_OPTIONS);
- ASSERT_TRUE(rai_def);
- OptionCustomPtr rai(new OptionCustom(*rai_def, Option::V4));
+ const OptionDefinition& rai_def = LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF();
+ OptionCustomPtr rai(new OptionCustom(rai_def, Option::V4));
ASSERT_TRUE(rai);
IOAddress addr("192.0.3.2");
OptionPtr ols(new Option(Option::V4,
@@ -4518,10 +4494,8 @@ TEST_F(Dhcpv4SrvTest, relayLinkSelect) {
EXPECT_FALSE(drop);
// Subnet select option has a lower precedence
- OptionDefinitionPtr sbnsel_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_SUBNET_SELECTION);
- ASSERT_TRUE(sbnsel_def);
- OptionCustomPtr sbnsel(new OptionCustom(*sbnsel_def, Option::V4));
+ const OptionDefinition& sbnsel_def = LibDHCP::DHO_SUBNET_SELECTION_DEF();
+ OptionCustomPtr sbnsel(new OptionCustom(sbnsel_def, Option::V4));
ASSERT_TRUE(sbnsel);
sbnsel->writeAddress(IOAddress("192.0.2.3"));
dis->addOption(sbnsel);
@@ -4622,10 +4596,8 @@ TEST_F(Dhcpv4SrvTest, relayIgnoreLinkSelect) {
dis->addOption(clientid);
// Let's create a Relay Agent Information option
- OptionDefinitionPtr rai_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_AGENT_OPTIONS);
- ASSERT_TRUE(rai_def);
- OptionCustomPtr rai(new OptionCustom(*rai_def, Option::V4));
+ const OptionDefinition& rai_def = LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF();
+ OptionCustomPtr rai(new OptionCustom(rai_def, Option::V4));
ASSERT_TRUE(rai);
IOAddress addr("192.0.3.2");
OptionPtr ols(new Option(Option::V4,
@@ -4655,10 +4627,8 @@ TEST_F(Dhcpv4SrvTest, relayIgnoreLinkSelect) {
// Subnet select option has a lower precedence, but will succeed
// because RAI link selection suboptions are being ignored
- OptionDefinitionPtr sbnsel_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_SUBNET_SELECTION);
- ASSERT_TRUE(sbnsel_def);
- OptionCustomPtr sbnsel(new OptionCustom(*sbnsel_def, Option::V4));
+ const OptionDefinition& sbnsel_def = LibDHCP::DHO_SUBNET_SELECTION_DEF();
+ OptionCustomPtr sbnsel(new OptionCustom(sbnsel_def, Option::V4));
ASSERT_TRUE(sbnsel);
sbnsel->writeAddress(IOAddress("192.0.2.3"));
dis->addOption(sbnsel);
@@ -4758,10 +4728,8 @@ TEST_F(Dhcpv4SrvTest, subnetSelect) {
dis->addOption(clientid);
// Let's create a Subnet Selection option
- OptionDefinitionPtr sbnsel_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_SUBNET_SELECTION);
- ASSERT_TRUE(sbnsel_def);
- OptionCustomPtr sbnsel(new OptionCustom(*sbnsel_def, Option::V4));
+ const OptionDefinition& sbnsel_def = LibDHCP::DHO_SUBNET_SELECTION_DEF();
+ OptionCustomPtr sbnsel(new OptionCustom(sbnsel_def, Option::V4));
ASSERT_TRUE(sbnsel);
sbnsel->writeAddress(IOAddress("192.0.3.2"));
@@ -5258,10 +5226,8 @@ public:
query_->setHWAddr(hwaddr_);
query_->setCiaddr(addr_);
- if (!rai_def_) {
- isc_throw(Unexpected, "RAI definition can't be found");
- }
- rai_.reset(new OptionCustom(*rai_def_, Option::V4));
+ rai_.reset(new OptionCustom(LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF(),
+ Option::V4));
rai_sub_.reset(new Option(Option::V4, RAI_OPTION_LINK_SELECTION,
addr_.toBytes()));
rai_->addOption(rai_sub_);
@@ -5290,9 +5256,6 @@ public:
LeaseMgrFactory::destroy();
}
- /// @brief RAI definition.
- static OptionDefinitionPtr rai_def_;
-
/// @brief Client address.
IOAddress addr_;
@@ -5324,15 +5287,6 @@ public:
ElementPtr sub_options_;
};
-OptionDefinitionPtr
-StashAgentOptionTest::rai_def_ = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_AGENT_OPTIONS);
-
-// Verify that RAI has a definition and can be built.
-TEST(StashAgentOptionTestTest, checkRAI) {
- ASSERT_TRUE(StashAgentOptionTest::rai_def_);
-}
-
// Verify the basic positive case.
TEST_F(StashAgentOptionTest, basic) {
CfgMgr::instance().commit();
@@ -5398,7 +5352,7 @@ TEST_F(StashAgentOptionTest, oldExtendedInfo) {
// Verify that empty RAI is supported.
TEST_F(StashAgentOptionTest, emptyRelayAgentInfo) {
// Add an empty RAI.
- OptionPtr empty_rai(new OptionCustom(*StashAgentOptionTest::rai_def_,
+ OptionPtr empty_rai(new OptionCustom(LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF(),
Option::V4));
query_->addOption(empty_rai);
diff --git a/src/bin/dhcp4/tests/dhcp4_test_utils.cc b/src/bin/dhcp4/tests/dhcp4_test_utils.cc
index 94dfe6f48f..8f303b9d3d 100644
--- a/src/bin/dhcp4/tests/dhcp4_test_utils.cc
+++ b/src/bin/dhcp4/tests/dhcp4_test_utils.cc
@@ -407,17 +407,15 @@ Dhcpv4SrvTest::generateHWAddr(size_t size /*= 6*/) {
OptionCustomPtr
Dhcpv4SrvTest::makeServerIdOption(const IOAddress& address) {
- OptionDefinitionPtr option_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_SERVER_IDENTIFIER);
- OptionCustomPtr server_id(new OptionCustom(*option_def, Option::V4));
+ const OptionDefinition& option_def = LibDHCP::DHO_DHCP_SERVER_IDENTIFIER_DEF();
+ OptionCustomPtr server_id(new OptionCustom(option_def, Option::V4));
server_id->writeAddress(address);
return (server_id);
}
OptionPtr
Dhcpv4SrvTest::makeFqdnListOption() {
- OptionDefinitionPtr def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DOMAIN_SEARCH);
+ const OptionDefinition& def = LibDHCP::DHO_DOMAIN_SEARCH_DEF();
// Prepare buffer holding an array of FQDNs.
const uint8_t fqdn[] = {
@@ -430,8 +428,8 @@ Dhcpv4SrvTest::makeFqdnListOption() {
// Initialize a vector with the FQDN data.
std::vector<uint8_t> fqdn_buf(fqdn, fqdn + sizeof(fqdn));
- OptionPtr option = def->optionFactory(Option::V4, DHO_DOMAIN_SEARCH,
- fqdn_buf.begin(), fqdn_buf.end());
+ OptionPtr option = def.optionFactory(Option::V4, DHO_DOMAIN_SEARCH,
+ fqdn_buf.begin(), fqdn_buf.end());
return (option);
}
@@ -784,18 +782,12 @@ Dhcpv4SrvTest::buildCfgOptionTest(IOAddress expected_server_id,
Pkt4Ptr& query,
IOAddress requested,
IOAddress server_id) {
- OptionDefinitionPtr req_addr_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_REQUESTED_ADDRESS);
- ASSERT_TRUE(req_addr_def);
-
- OptionDefinitionPtr sbnsel_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_SUBNET_SELECTION);
- ASSERT_TRUE(sbnsel_def);
-
- OptionCustomPtr req_addr(new OptionCustom(*req_addr_def, Option::V4));
+ const OptionDefinition& req_addr_def = LibDHCP::DHO_DHCP_REQUESTED_ADDRESS_DEF();
+ OptionCustomPtr req_addr(new OptionCustom(req_addr_def, Option::V4));
req_addr->writeAddress(requested);
- OptionCustomPtr sbnsel(new OptionCustom(*sbnsel_def, Option::V4));
+ const OptionDefinition& sbnsel_def = LibDHCP::DHO_SUBNET_SELECTION_DEF();
+ OptionCustomPtr sbnsel(new OptionCustom(sbnsel_def, Option::V4));
sbnsel->writeAddress(requested);
query->addOption(req_addr);
diff --git a/src/bin/dhcp4/tests/inform_unittest.cc b/src/bin/dhcp4/tests/inform_unittest.cc
index a91e45d70c..88e80a33e1 100644
--- a/src/bin/dhcp4/tests/inform_unittest.cc
+++ b/src/bin/dhcp4/tests/inform_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2023 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2024 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -503,11 +503,9 @@ TEST_F(InformTest, messageFieldsLongOptions) {
// Client requests big option.
client.requestOption(240);
// Client also sends multiple options with the same code.
- OptionDefinitionPtr rai_def = LibDHCP::getOptionDef(DHCP4_OPTION_SPACE,
- DHO_DHCP_AGENT_OPTIONS);
- ASSERT_TRUE(rai_def);
+ const OptionDefinition& rai_def = LibDHCP::DHO_DHCP_AGENT_OPTIONS_DEF();
// Create RAI options which should be fused by the server.
- OptionCustomPtr rai(new OptionCustom(*rai_def, Option::V4));
+ OptionCustomPtr rai(new OptionCustom(rai_def, Option::V4));
for (uint8_t i = 0; i < 4; ++i) {
// Create a buffer holding some binary data. This data will be
// used as reference when we read back the data from a created
diff --git a/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc b/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
index 1f790c4dea..ca73c0e4f0 100644
--- a/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
+++ b/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc
@@ -3288,11 +3288,8 @@ TEST_F(Dhcpv6SrvTest, relayOverride) {
/// @param payload specified payload (0 = fill payload with repeating option code)
/// @return RSOO with nested options
OptionPtr createRSOO(const std::vector<uint16_t>& codes, uint8_t payload = 0) {
- OptionDefinitionPtr def = LibDHCP::getOptionDef(DHCP6_OPTION_SPACE, D6O_RSOO);
- if (!def) {
- isc_throw(BadValue, "Can't find RSOO definition");
- }
- OptionPtr rsoo_container(new OptionCustom(*def, Option::V6));
+ const OptionDefinition& def = LibDHCP::D6O_RSOO_DEF();
+ OptionPtr rsoo_container(new OptionCustom(def, Option::V6));
for (size_t i = 0; i < codes.size(); ++i) {
OptionBuffer buf(10, payload ? payload : codes[i]); // let's make the option 10 bytes long