const OptionDefParams* params,
size_t params_size);
-bool initialized = LibDHCP::initOptionDefs();
+bool LibDHCP::initialized_ = LibDHCP::initOptionDefs();
const OptionDefContainerPtr
LibDHCP::getOptionDefs(const std::string& space) {
- // If any of the containers is not initialized, it means that we haven't
- // initialized option definitions at all.
- if (option_defs_.end() == option_defs_.find(space)) {
- isc_throw(isc::Unexpected, "option definitions should have been "
- "automatically initialized at process startup");
- }
-
OptionDefContainers::const_iterator container = option_defs_.find(space);
if (container != option_defs_.end()) {
return (container->second);
}
+
return (null_option_def_container_);
}
return getOptionDefs(ISC_V6_OPTION_SPACE);
}
}
+
return (null_option_def_container_);
}
if (range.first != range.second) {
return (*range.first);
}
+
return (OptionDefinitionPtr());
}
if (range.first != range.second) {
return (*range.first);
}
+
return (OptionDefinitionPtr());
}
if (range.first != range.second) {
return (*range.first);
}
+
return (OptionDefinitionPtr());
}
if (range.first != range.second) {
return (*range.first);
}
+
return (OptionDefinitionPtr());
}
if (space == DHCP4_OPTION_SPACE) {
return getOptionDefs(LAST_RESORT_V4_OPTION_SPACE);
}
+
return (null_option_def_container_);
}
OPTION_DEF_PARAMS[i].optionDefParams,
OPTION_DEF_PARAMS[i].size);
}
- return true;
+
+ return (true);
}
uint32_t
/// @return vendor id.
static uint32_t optionSpaceToVendorId(const std::string& option_space);
+private:
+
/// Initialize DHCP option definitions.
///
/// The method creates option definitions for all DHCP options.
/// are incorrect. This is programming error.
static bool initOptionDefs();
-private:
+ /// flag which indicates initialization state
+ static bool initialized_;
/// pointers to factories that produce DHCPv6 options
static FactoryMap v4factories_;