Commit b561ee09 authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[2491] Better comments in createStatusCode function.

parent 372f3a19
...@@ -349,16 +349,27 @@ void Dhcpv6Srv::appendRequestedOptions(const Pkt6Ptr& question, Pkt6Ptr& answer) ...@@ -349,16 +349,27 @@ void Dhcpv6Srv::appendRequestedOptions(const Pkt6Ptr& question, Pkt6Ptr& answer)
} }
OptionPtr Dhcpv6Srv::createStatusCode(uint16_t code, const std::string& text) { OptionPtr Dhcpv6Srv::createStatusCode(uint16_t code, const std::string& text) {
// @todo This function uses OptionCustom class to manage contents
// of the data fields. Since this this option is frequently used
// it may be good to implement dedicated class to avoid performance
// impact.
// Get the definition of the option holding status code.
OptionDefinitionPtr status_code_def = OptionDefinitionPtr status_code_def =
LibDHCP::getOptionDef(Option::V6, D6O_STATUS_CODE); LibDHCP::getOptionDef(Option::V6, D6O_STATUS_CODE);
// This definition is assumed to be initialized in LibDHCP.
assert(status_code_def); assert(status_code_def);
// As there is no dedicated class to represent Status Code
// the OptionCustom class should be returned here.
boost::shared_ptr<OptionCustom> option_status = boost::shared_ptr<OptionCustom> option_status =
boost::dynamic_pointer_cast< boost::dynamic_pointer_cast<
OptionCustom>(status_code_def->optionFactory(Option::V6, D6O_STATUS_CODE)); OptionCustom>(status_code_def->optionFactory(Option::V6, D6O_STATUS_CODE));
assert(option_status); assert(option_status);
// Set status code to 'code' (0 - means data field #0).
option_status->writeInteger<uint16_t>(code, 0); option_status->writeInteger<uint16_t>(code, 0);
// Set a message (1 - means data field #1).
option_status->writeString(text, 1); option_status->writeString(text, 1);
return (option_status); return (option_status);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment