From: Marcin Siodelski Date: Tue, 4 Feb 2014 16:33:52 +0000 (+0100) Subject: [3309] Allow creation of definition for std options without def in libdhcp. X-Git-Tag: bind10-1.2.0beta1-release~65^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d9b2ef002120efa341a54b408c326cb40390bd04;p=thirdparty%2Fkea.git [3309] Allow creation of definition for std options without def in libdhcp. --- diff --git a/src/lib/dhcpsrv/cfgmgr.cc b/src/lib/dhcpsrv/cfgmgr.cc index 8d41a15320..9e5bc2e40a 100644 --- a/src/lib/dhcpsrv/cfgmgr.cc +++ b/src/lib/dhcpsrv/cfgmgr.cc @@ -74,12 +74,15 @@ CfgMgr::addOptionDef(const OptionDefinitionPtr& def, isc_throw(DuplicateOptionDefinition, "option definition already added" << " to option space " << option_space); + // We must not override standard (assigned) option for which there is a + // definition in libdhcp++. The standard options belong to dhcp4 or dhcp6 + // option space. } else if ((option_space == "dhcp4" && - LibDHCP::isStandardOption(Option::V4, def->getCode())) || + LibDHCP::isStandardOption(Option::V4, def->getCode()) && + LibDHCP::getOptionDef(Option::V4, def->getCode())) || (option_space == "dhcp6" && - LibDHCP::isStandardOption(Option::V6, def->getCode()))) { - // We must not override standard (assigned) option. The standard options - // belong to dhcp4 or dhcp6 option space. + LibDHCP::isStandardOption(Option::V6, def->getCode()) && + LibDHCP::getOptionDef(Option::V6, def->getCode()))) { isc_throw(BadValue, "unable to override definition of option '" << def->getCode() << "' in standard option space '" << option_space << "'.");