12 #include <boost/shared_ptr.hpp>
27 class AbstractMessageRenderer;
34 typedef boost::shared_ptr<EDNS>
EDNSPtr;
222 uint8_t
getVersion()
const {
return (version_); }
246 void setUDPSize(
const uint16_t udp_size) { udp_size_ = udp_size; }
310 const uint8_t extended_rcode)
const;
319 const uint8_t extended_rcode)
const;
342 std::string
toText()
const;
355 const uint8_t version_;
The Name class encapsulates DNS names.
ostream & operator<<(std::ostream &os, const EDNS &edns)
Insert the EDNS as a string into stream.
boost::shared_ptr< const EDNS > ConstEDNSPtr
A pointer-like type pointing to an immutable EDNS object.
uint16_t getUDPSize() const
Returns the maximum payload size of UDP messages for the sender of the message containing this EDNS...
The Rdata class is an abstract base class that provides a set of common interfaces to manipulate conc...
DNS Response Codes (RCODEs) class.
bool getDNSSECAwareness() const
Returns whether the message sender is DNSSEC aware.
The RRClass class encapsulates DNS resource record classes.
uint8_t getVersion() const
Returns the version of EDNS.
boost::shared_ptr< EDNS > EDNSPtr
A pointer-like type pointing to an EDNS object.
The AbstractMessageRenderer class is an abstract base class that provides common interfaces for rende...
EDNS(const uint8_t version=SUPPORTED_VERSION)
Constructor with the EDNS version.
The RRTTL class encapsulates TTLs used in DNS resource records.
The EDNS class represents the EDNS OPT RR defined in RFC2671.
int version()
returns Kea hooks version.
EDNS * createEDNSFromRR(const Name &name, const RRClass &rrclass, const RRType &rrtype, const RRTTL &ttl, const Rdata &rdata, uint8_t &extended_rcode)
Create a new EDNS object from a set of RR parameters, also providing the extended RCODE value...
void setUDPSize(const uint16_t udp_size)
Specify the maximum payload size of UDP messages that use this EDNS.
std::string toText() const
Convert the EDNS to a string.
The OutputBuffer class is a buffer abstraction for manipulating mutable data.
Defines the logger used by the top-level component of kea-dhcp-ddns.
static const uint8_t SUPPORTED_VERSION
The highest EDNS version this implementation supports.
The RRType class encapsulates DNS resource record types.
unsigned int toWire(AbstractMessageRenderer &renderer, const uint8_t extended_rcode) const
Render the EDNS in the wire format.
void setDNSSECAwareness(const bool is_aware)
Specifies whether the sender of the message containing this EDNS is DNSSEC aware. ...