Kea 2.7.6
|
Class which represents an option carrying a single string value. More...
#include <option_string.h>
Public Member Functions | |
OptionString (const Option::Universe u, const uint16_t type, const std::string &value) | |
Constructor, used to create options to be sent. | |
OptionString (const Option::Universe u, const uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) | |
Constructor, used for receiving options. | |
OptionPtr | clone () const |
Copies this option and returns a pointer to the copy. | |
std::string | getValue () const |
Returns the string value held by the option. | |
virtual uint16_t | len () const |
Returns length of the whole option, including header. | |
virtual void | pack (isc::util::OutputBuffer &buf, bool check=true) const |
Creates on-wire format of the option. | |
void | setValue (const std::string &value) |
Sets the string value to be held by the option. | |
virtual std::string | toString () const |
Returns actual value of the option in string format. | |
virtual std::string | toText (int indent=0) const |
Returns option information in the textual format. | |
virtual void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end) |
Decodes option data from the provided buffer. | |
Public Member Functions inherited from isc::dhcp::Option | |
Option (const Option &source) | |
Copy constructor. | |
Option (Universe u, uint16_t type) | |
ctor, used for options constructed, usually during transmission | |
Option (Universe u, uint16_t type, const OptionBuffer &data) | |
Constructor, used for received options. | |
Option (Universe u, uint16_t type, OptionBufferConstIter first, OptionBufferConstIter last) | |
Constructor, used for received options. | |
virtual | ~Option () |
just to force that every option has virtual dtor | |
void | addOption (OptionPtr opt) |
Adds a sub-option. | |
bool | delOption (uint16_t type) |
Attempts to delete first suboption of requested type. | |
virtual bool | equals (const Option &other) const |
Checks if two options are equal. | |
bool | equals (const OptionPtr &other) const |
Checks if options are equal. | |
virtual const OptionBuffer & | getData () const |
Returns pointer to actual data. | |
std::string | getEncapsulatedSpace () const |
Returns the name of the option space encapsulated by this option. | |
virtual uint16_t | getHeaderLen () const |
Returns length of header (2 for v4, 4 for v6) | |
OptionCollection & | getMutableOptions () |
Returns all encapsulated options. | |
OptionPtr | getOption (uint16_t type) const |
Returns shared_ptr to suboption of specific type. | |
const OptionCollection & | getOptions () const |
Returns all encapsulated options. | |
void | getOptionsCopy (OptionCollection &options_copy) const |
Performs deep copy of suboptions. | |
uint16_t | getType () const |
Returns option type (0-255 for DHCPv4, 0-65535 for DHCPv6) | |
uint16_t | getUint16 () const |
Returns content of first word. | |
uint32_t | getUint32 () const |
Returns content of first double word. | |
uint8_t | getUint8 () const |
Returns content of first byte. | |
Universe | getUniverse () const |
returns option universe (V4 or V6) | |
Option & | operator= (const Option &rhs) |
Assignment operator. | |
template<typename InputIterator > | |
void | setData (InputIterator first, InputIterator last) |
Sets content of this option from buffer. | |
void | setEncapsulatedSpace (const std::string &encapsulated_space) |
Sets the name of the option space encapsulated by this option. | |
void | setUint16 (uint16_t value) |
Sets content of this option to a single uint16 value. | |
void | setUint32 (uint32_t value) |
Sets content of this option to a single uint32 value. | |
void | setUint8 (uint8_t value) |
Sets content of this option to a single uint8 value. | |
virtual std::vector< uint8_t > | toBinary (const bool include_header=false) const |
Returns binary representation of the option. | |
virtual std::string | toHexString (const bool include_header=false) const |
Returns string containing hexadecimal representation of option. | |
virtual bool | valid () const |
returns if option is valid (e.g. | |
Additional Inherited Members | |
Public Types inherited from isc::dhcp::Option | |
typedef OptionPtr | Factory(Option::Universe u, uint16_t type, const OptionBuffer &buf) |
a factory function prototype | |
enum | Universe { V4 , V6 } |
defines option universe DHCPv4 or DHCPv6 More... | |
Static Public Member Functions inherited from isc::dhcp::Option | |
static OptionPtr | create (Universe u, uint16_t type) |
Factory function creating an instance of the Option . | |
static OptionPtr | create (Universe u, uint16_t type, const OptionBuffer &data) |
Factory function creating an instance of the Option . | |
static OptionPtr | factory (Option::Universe u, uint16_t type) |
Factory function to create instance of option. | |
static OptionPtr | factory (Option::Universe u, uint16_t type, const OptionBuffer &buf) |
Factory function to create instance of option. | |
Static Public Attributes inherited from isc::dhcp::Option | |
static bool | lenient_parsing_ |
Governs whether options should be parsed less strictly. | |
static const size_t | OPTION4_HDR_LEN = 2 |
length of the usual DHCPv4 option header (there are exceptions) | |
static const size_t | OPTION6_HDR_LEN = 4 |
length of any DHCPv6 option header | |
Protected Member Functions inherited from isc::dhcp::Option | |
void | check () const |
A protected method used for option correctness. | |
template<typename OptionType > | |
OptionPtr | cloneInternal () const |
Copies this option and returns a pointer to the copy. | |
std::string | headerToText (const int indent=0, const std::string &type_name="") const |
Returns option header in the textual format. | |
void | packHeader (isc::util::OutputBuffer &buf, bool check=true) const |
Store option's header in a buffer. | |
void | packOptions (isc::util::OutputBuffer &buf, bool check=true) const |
Store sub options in a buffer. | |
std::string | suboptionsToText (const int indent=0) const |
Returns collection of suboptions in the textual format. | |
void | unpackOptions (const OptionBuffer &buf) |
Builds a collection of sub options from the buffer. | |
Protected Attributes inherited from isc::dhcp::Option | |
OptionBuffer | data_ |
contains content of this data | |
std::string | encapsulated_space_ |
Name of the option space being encapsulated by this option. | |
OptionCollection | options_ |
collection for storing suboptions | |
uint16_t | type_ |
option type (0-255 for DHCPv4, 0-65535 for DHCPv6) | |
Universe | universe_ |
option universe (V4 or V6) | |
Class which represents an option carrying a single string value.
This class represents an option carrying a single string value. Currently this class imposes that the minimal length of the carried string is 1. Per RFC 2132, Sec 2 trailing NULLs are trimmed during either construction or unpacking.
Definition at line 28 of file option_string.h.
isc::dhcp::OptionString::OptionString | ( | const Option::Universe | u, |
const uint16_t | type, | ||
const std::string & | value ) |
Constructor, used to create options to be sent.
This constructor creates an instance of option which carries a string value specified as constructor's parameter. This constructor is most often used to create an instance of an option which will be sent in the outgoing packet. Trailing NULLs will be trimmed.
u | universe (V4 or V6). |
type | option code. |
value | a string value to be carried by the option. |
isc::OutOfRange | if provided string is empty. |
Definition at line 16 of file option_string.cc.
References setValue().
isc::dhcp::OptionString::OptionString | ( | const Option::Universe | u, |
const uint16_t | type, | ||
OptionBufferConstIter | begin, | ||
OptionBufferConstIter | end ) |
Constructor, used for receiving options.
This constructor creates an instance of the option from the provided chunk of buffer. This buffer may hold the data received on the wire. Trailing NULLs will be trimmed.
u | universe (V4 or V6). |
type | option code. |
begin | iterator pointing to the first byte of the buffer chunk. |
end | iterator pointing to the last byte of the buffer chunk. |
isc::OutOfRange | if provided buffer is truncated. |
Definition at line 24 of file option_string.cc.
References unpack().
|
virtual |
Copies this option and returns a pointer to the copy.
Reimplemented from isc::dhcp::Option.
Definition at line 34 of file option_string.cc.
References isc::dhcp::Option::cloneInternal().
std::string isc::dhcp::OptionString::getValue | ( | ) | const |
Returns the string value held by the option.
Definition at line 39 of file option_string.cc.
References isc::dhcp::Option::getData().
Referenced by toString(), and toText().
|
virtual |
Returns length of the whole option, including header.
Reimplemented from isc::dhcp::Option.
Definition at line 69 of file option_string.cc.
References isc::dhcp::Option::getData(), and isc::dhcp::Option::getHeaderLen().
|
virtual |
Creates on-wire format of the option.
This function creates on-wire format of the option and appends it to the data existing in the provided buffer. The internal buffer's pointer is moved to the end of stored data.
[out] | buf | output buffer where the option will be stored. |
check | if set to false, allows options larger than 255 for v4 |
Reimplemented from isc::dhcp::Option.
Definition at line 74 of file option_string.cc.
References isc::dhcp::Option::check(), isc::dhcp::Option::getData(), isc::dhcp::Option::packHeader(), and isc::util::OutputBuffer::writeData().
void isc::dhcp::OptionString::setValue | ( | const std::string & | value | ) |
Sets the string value to be held by the option.
Trailing NULLs will be trimmed.
value | string value to be set. |
isc::OutOfRange | if a string value to be set is empty. |
Definition at line 45 of file option_string.cc.
References isc::dhcp::Option::getType(), isc_throw, isc::util::str::seekTrimmed(), and isc::dhcp::Option::setData().
Referenced by OptionString().
|
virtual |
Returns actual value of the option in string format.
This method is used in client classification.
Reimplemented from isc::dhcp::Option.
Definition at line 110 of file option_string.cc.
References getValue().
|
virtual |
Returns option information in the textual format.
indent | Number of space characters to be inserted before the text. |
Reimplemented from isc::dhcp::Option.
Definition at line 101 of file option_string.cc.
References getValue(), and isc::dhcp::Option::headerToText().
|
virtual |
Decodes option data from the provided buffer.
This function decodes option data from the provided buffer. Note that it does not decode the option code and length, so the iterators must point to the beginning and end of the option payload respectively. The size of the decoded payload must be at least 1 byte. Trailing NULLs will be trimmed.
begin | the iterator pointing to the option payload. |
end | the iterator pointing to the end of the option payload. |
isc::OutOfRange | if provided buffer is truncated. |
Reimplemented from isc::dhcp::Option.
Definition at line 86 of file option_string.cc.
References isc::dhcp::Option::getType(), isc_throw, isc::util::str::seekTrimmed(), and isc::dhcp::Option::setData().
Referenced by OptionString().