#include <dhcpsrv/parsers/dbaccess_parser.h>
#include <dhcpsrv/parsers/dhcp_config_parser.h>
#include <dhcpsrv/parsers/dhcp_parsers.h>
+#include <dhcpsrv/parsers/duid_config_parser.h>
#include <dhcpsrv/parsers/expiration_config_parser.h>
#include <dhcpsrv/parsers/host_reservation_parser.h>
#include <dhcpsrv/parsers/host_reservations_list_parser.h>
parser = new ControlSocketParser(config_id);
} else if (config_id.compare("expired-leases-processing") == 0) {
parser = new ExpirationConfigParser();
+ } else if (config_id.compare("server-id") == 0) {
+ parser = new DUIDConfigParser();
} else {
isc_throw(DhcpConfigError,
"unsupported global configuration parameter: "
EXPECT_FALSE(lease_reclaimed);
}
+// This test verifies that the DUID type can be selected.
+TEST_F(JSONFileBackendTest, serverId) {
+ string config =
+ "{ \"Dhcp6\": {"
+ "\"interfaces-config\": {"
+ " \"interfaces\": [ ]"
+ "},"
+ "\"lease-database\": {"
+ " \"type\": \"memfile\","
+ " \"persist\": false"
+ "},"
+ "\"server-id\": {"
+ " \"type\": \"EN\","
+ " \"enterprise-id\": 1234"
+ "},"
+ "\"rebind-timer\": 2000, "
+ "\"renew-timer\": 1000, "
+ "\"subnet6\": [ ],"
+ "\"preferred-lifetime\": 3000, "
+ "\"valid-lifetime\": 4000 }"
+ "}";
+ writeFile(TEST_FILE, config);
+
+ // Create an instance of the server and intialize it.
+ boost::scoped_ptr<ControlledDhcpv6Srv> srv;
+ ASSERT_NO_THROW(srv.reset(new ControlledDhcpv6Srv(0)));
+ ASSERT_NO_THROW(srv->init(TEST_FILE));
+
+ // Check that DUID configuration is affected.
+ ConstCfgDUIDPtr duid_cfg = CfgMgr::instance().getCurrentCfg()->getCfgDUID();
+ ASSERT_TRUE(duid_cfg);
+ EXPECT_EQ(DUID::DUID_EN, duid_cfg->getType());
+ EXPECT_EQ(1234, duid_cfg->getEnterpriseId());
+}
+
} // End of anonymous namespace