OptionDefParser parser(family);
BOOST_FOREACH(ConstElementPtr option_def, option_defs->listValue()) {
- OptionDefinitionTuple def;
+ OptionDefinitionPtr def = parser.parse(option_def);
- def = parser.parse(option_def);
// Verify if the defition is for an option which are
// in a deferred processing list.
- if (!LibDHCP::shouldDeferOptionUnpack(def.second,
- def.first->getCode())) {
+ if (!LibDHCP::shouldDeferOptionUnpack(def->getOptionSpaceName(),
+ def->getCode())) {
isc_throw(DhcpConfigError,
"Not allowed option definition for code '"
- << def.first->getCode() << "' in space '"
- << def.second << "' at ("
+ << def->getCode() << "' in space '"
+ << def->getOptionSpaceName() << "' at ("
<< option_def->getPosition() << ")");
}
try {
- defs->add(def.first);
+ defs->add(def);
} catch (const std::exception& ex) {
// Sanity check: it should never happen
isc_throw(DhcpConfigError, ex.what() << " ("
: address_family_(address_family) {
}
-std::pair<isc::dhcp::OptionDefinitionPtr, std::string>
+OptionDefinitionPtr
OptionDefParser::parse(ConstElementPtr option_def) {
// Check parameters.
}
// Option definition has been created successfully.
- return make_pair(def, space);
+ return (def);
}
// ******************************** OptionDefListParser ************************
OptionDefParser parser(address_family_);
BOOST_FOREACH(ConstElementPtr option_def, option_def_list->listValue()) {
- OptionDefinitionTuple def;
-
- def = parser.parse(option_def);
+ OptionDefinitionPtr def = parser.parse(option_def);
try {
- storage->add(def.first);
+ storage->add(def);
} catch (const std::exception& ex) {
// Append position if there is a failure.
isc_throw(DhcpConfigError, ex.what() << " ("
void parse(SrvConfig& srv_cfg, isc::data::ConstElementPtr value);
};
-typedef std::pair<isc::dhcp::OptionDefinitionPtr, std::string> OptionDefinitionTuple;
-
/// @brief Parser for a single option definition.
///
/// This parser creates an instance of a single option definition.
/// @brief Parses an entry that describes single option definition.
///
/// @param option_def a configuration entry to be parsed.
- /// @return tuple (option definition, option space) of the parsed structure
+ /// @return option definition of the parsed structure.
///
/// @throw DhcpConfigError if parsing was unsuccessful.
- OptionDefinitionTuple
- parse(isc::data::ConstElementPtr option_def);
+ OptionDefinitionPtr parse(isc::data::ConstElementPtr option_def);
private:
/// @brief Address family: @c AF_INET or @c AF_INET6.