2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-03 07:25:18 +00:00

[#35,!517] Added DDDNS parameters to networks,subnets, and their parsers

src/lib/dhcpsrv/network.*
    Network - added DDNS parameters: Optional members, getters, setters
    Network::toElement() - added DDNS parameters

src/lib/dhcpsrv/parsers/base_network_parser.*
    BaseNetworkParser::parseDdnsParams() - new method to parse DDNS parameters

    BaseNetworkParser::parseLifetime() - fixed unitialized variables warning

src/lib/dhcpsrv/parsers/dhcp_parsers.cc
    Subnet4ConfigParser::initSubnet()
    Subnet6ConfigParser::initSubnet()  - added call to parseDdnsParms().

src/lib/dhcpsrv/parsers/shared_network_parser.cc
    SharedNetwork4Parser::parse()
    SharedNetwork6Parser::parse() - added call to parseDdnsParms().

src/lib/dhcpsrv/parsers/simple_parser4.cc
    SimpleParser4::GLOBAL4_PARAMETERS
    SimpleParser4::GLOBAL4_DEFAULTS
    SimpleParser4::SUBNET4_PARAMETERS
    SimpleParser4::INHERIT_TO_SUBNET4
    SimpleParser4::SHARED_NETWORK4_PARAMETERS - added DDNS parameters

src/lib/dhcpsrv/parsers/simple_parser6.cc
    SimpleParser6::GLOBAL6_PARAMETERS
    SimpleParser6::GLOBAL6_DEFAULTS
    SimpleParser6::SUBNET6_PARAMETERS
    SimpleParser6::INHERIT_TO_SUBNET6
    SimpleParser6::SHARED_NETWORK6_PARAMETERS - added DDNS parameters

src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc
src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc
src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc
src/lib/dhcpsrv/tests/network_unittest.cc
src/lib/dhcpsrv/tests/shared_network_parser_unittest.cc
src/lib/dhcpsrv/tests/shared_network_unittest.cc
src/lib/dhcpsrv/tests/subnet_unittest.cc
    Updated tests.
This commit is contained in:
Thomas Markwalder
2019-09-26 08:33:41 -04:00
parent 4f57cfa254
commit e782a9d5a7
15 changed files with 692 additions and 127 deletions

View File

@@ -18,11 +18,11 @@ namespace dhcp {
const Triplet<uint32_t>
BaseNetworkParser::parseLifetime(const ConstElementPtr& scope,
const std::string& name) {
uint32_t value;
uint32_t value = 0;
bool has_value = false;
uint32_t min_value;
uint32_t min_value = 0;
bool has_min = false;
uint32_t max_value;
uint32_t max_value = 0;
bool has_max = false;
if (scope->contains(name)) {
value = getInteger(scope, name);
@@ -167,5 +167,37 @@ BaseNetworkParser::parseHostReservationMode(const data::ConstElementPtr& network
}
}
void
BaseNetworkParser::parseDdnsParams(const data::ConstElementPtr& network_data,
NetworkPtr& network) {
if (network_data->contains("ddns-send-updates")) {
network->setDdnsSendUpdates(getBoolean(network_data, "ddns-send-updates"));
}
if (network_data->contains("ddns-override-no-update")) {
network->setDdnsOverrideNoUpdate(getBoolean(network_data, "ddns-override-no-update"));
}
if (network_data->contains("ddns-override-client-update")) {
network->setDdnsOverrideClientUpdate(getBoolean(network_data, "ddns-override-client-update"));
}
if (network_data->contains("ddns-replace-client-name")) {
network->setDdnsReplaceClientNameMode(getAndConvert<D2ClientConfig::ReplaceClientNameMode,
D2ClientConfig::stringToReplaceClientNameMode>
(network_data, "ddns-replace-client-name",
"ReplaceClientName mode"));
}
if (network_data->contains("ddns-generated-prefix")) {
network->setDdnsGeneratedPrefix(getString(network_data, "ddns-generated-prefix"));
}
if (network_data->contains("ddns-qualifying-suffix")) {
network->setDdnsQualifyingSuffix(getString(network_data, "ddns-qualifying-suffix"));
}
}
} // end of namespace isc::dhcp
} // end of namespace isc