107 const T& operator*()
const;
108 const T* operator->()
const;
201 HEADERFLAG_QR = 0x8000,
202 HEADERFLAG_AA = 0x0400,
203 HEADERFLAG_TC = 0x0200,
204 HEADERFLAG_RD = 0x0100,
205 HEADERFLAG_RA = 0x0080,
206 HEADERFLAG_AD = 0x0020,
207 HEADERFLAG_CD = 0x0010
241 SECTION_QUESTION = 0,
243 SECTION_AUTHORITY = 2,
244 SECTION_ADDITIONAL = 3
276 bool getHeaderFlag(
const HeaderFlag flag)
const;
304 void setHeaderFlag(
const HeaderFlag flag,
const bool on =
true);
307 qid_t getQid()
const;
314 void setQid(qid_t qid);
327 const Rcode& getRcode()
const;
337 void setRcode(
const Rcode& rcode);
345 const Opcode& getOpcode()
const;
352 void setOpcode(
const Opcode& opcode);
414 unsigned int getRRCount(
const Section section)
const;
418 const QuestionIterator beginQuestion()
const;
422 const QuestionIterator endQuestion()
const;
429 const RRsetIterator beginSection(
const Section section)
const;
436 const RRsetIterator endSection(
const Section section)
const;
456 void addQuestion(
const Question& question);
482 bool hasRRset(
const Section section,
const Name& name,
506 bool removeRRset(
const Section section, RRsetIterator& iterator);
517 void clearSection(
const Section section);
527 void clear(
Mode mode);
549 std::string toText()
const;
649 static const uint16_t DEFAULT_MAX_UDPSIZE = 512;
656 static const uint16_t DEFAULT_MAX_EDNS0_UDPSIZE = 4096;
The Name class encapsulates DNS names.
Mode
Constants to specify the operation mode of the Message.
A standard DNS module exception that is thrown if a Message class method is called that is prohibited...
ParseOptions
Parse options.
The Question class encapsulates the common search key of DNS lookup, consisting of owner name...
std::ptrdiff_t difference_type
boost::shared_ptr< const EDNS > ConstEDNSPtr
A pointer-like type pointing to an immutable EDNS object.
bool operator!=(const Element &a, const Element &b)
std::ostream & operator<<(std::ostream &os, const CSVRow &row)
Overrides standard output stream operator for CSVRow object.
InvalidMessageUDPSize(const char *file, size_t line, const char *what)
DNS Response Codes (RCODEs) class.
The Message class encapsulates a standard DNS message.
SectionIterator< QuestionPtr > QuestionIterator
The RRClass class encapsulates DNS resource record classes.
boost::shared_ptr< Message > MessagePtr
Pointer-like type pointing to a Message.
Template version of Section Iterator.
bool operator==(const Element &a, const Element &b)
A standard DNS module exception that is thrown if a section iterator is being constructed for an inco...
The AbstractMessageRenderer class is an abstract base class that provides common interfaces for rende...
InvalidMessageSection(const char *file, size_t line, const char *what)
A standard DNS module exception that is thrown if a wire format message parser encounters a short len...
MessageTooShort(const char *file, size_t line, const char *what)
A standard DNS module exception that is thrown if a UDP buffer size smaller than the standard default...
Defines the logger used by the top-level component of kea-lfc.
SectionIterator is a templated class to provide standard-compatible iterators for Questions and RRset...
SectionIterator< RRsetPtr > RRsetIterator
Section
Constants to specify sections of a DNS message.
std::input_iterator_tag iterator_category
The RRType class encapsulates DNS resource record types.
InvalidMessageOperation(const char *file, size_t line, const char *what)
boost::shared_ptr< AbstractRRset > RRsetPtr
A pointer-like type pointing to an RRset object.
HeaderFlag
Constants for flag bit fields of a DNS message header.
The Opcode class objects represent standard OPCODEs of the header section of DNS messages as defined ...
boost::shared_ptr< Question > QuestionPtr
A pointer-like type pointing to an Question object.
boost::shared_ptr< const Message > ConstMessagePtr