7#ifndef D2_UPDATE_MESSAGE_H
8#define D2_UPDATE_MESSAGE_H
167 uint16_t
getId()
const;
172 void setId(
const uint16_t
id);
301 void fromWire(
const void* received_data,
size_t bytes_received,
334 void validateResponse()
const;
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
The D2UpdateMessage encapsulates a DNS Update message.
D2ZonePtr getZone() const
Returns a pointer to the object representing Zone record.
void setId(const uint16_t id)
Sets message ID.
UpdateMsgSection
Identifies sections in the DNS Update Message.
QRFlag
Indicates whether DNS Update message is a REQUEST or RESPONSE.
unsigned int getRRCount(const UpdateMsgSection section) const
Returns number of RRsets in the specified message section.
const dns::RRsetIterator beginSection(const UpdateMsgSection section) const
Return iterators pointing to the beginning of the list of RRsets, which belong to the specified secti...
void fromWire(const void *received_data, size_t bytes_received, dns::TSIGContext *const tsig_context=NULL)
Decode incoming message from the wire format.
const dns::RRsetIterator endSection(const UpdateMsgSection section) const
Return iterators pointing to the end of the list of RRsets, which belong to the specified section.
void toWire(dns::AbstractMessageRenderer &renderer, dns::TSIGContext *const tsig_ctx=NULL)
Encode outgoing message into wire format.
Direction
Indicates if the D2UpdateMessage object encapsulates Inbound or Outbound message.
QRFlag getQRFlag() const
Returns enum value indicating if the message is a REQUEST or RESPONSE.
void setRcode(const dns::Rcode &rcode)
Sets message RCode.
D2UpdateMessage(const Direction direction=OUTBOUND)
Constructor used to create an instance of the DNS Update Message (either outgoing or incoming).
uint16_t getId() const
Returns message ID.
void addRRset(const UpdateMsgSection section, const dns::RRsetPtr &rrset)
Adds an RRset to the specified section.
void setZone(const dns::Name &zone, const dns::RRClass &rrclass)
Sets the Zone record.
const dns::Rcode & getRcode() const
Returns an object representing message RCode.
Exception indicating that QR flag has invalid value.
InvalidQRFlag(const char *file, size_t line, const char *what)
Exception indicating that Zone section contains invalid content.
InvalidZoneSection(const char *file, size_t line, const char *what)
Exception indicating that the parsed message is not DNS Update.
NotUpdateMessage(const char *file, size_t line, const char *what)
Exception indicating that a signed, inbound message failed to verify.
TSIGVerifyError(const char *file, size_t line, const char *what)
The AbstractMessageRenderer class is an abstract base class that provides common interfaces for rende...
The Message class encapsulates a standard DNS message.
Section
Constants to specify sections of a DNS message.
The Name class encapsulates DNS names.
The RRClass class encapsulates DNS resource record classes.
DNS Response Codes (RCODEs) class.
SectionIterator is a templated class to provide standard-compatible iterators for Questions and RRset...
boost::shared_ptr< D2UpdateMessage > D2UpdateMessagePtr
Pointer to the DNS Update Message.
boost::shared_ptr< D2Zone > D2ZonePtr
boost::shared_ptr< AbstractRRset > RRsetPtr
A pointer-like type pointing to an RRset object.
Defines the logger used by the top-level component of kea-lfc.