Kea 2.7.5
|
Namespaces | |
namespace | master_lexer_internal |
namespace | name |
namespace | rdata |
Classes | |
class | AbstractMessageRenderer |
The AbstractMessageRenderer class is an abstract base class that provides common interfaces for rendering a DNS message into a buffer in wire format. More... | |
class | AbstractRRset |
The AbstractRRset class is an abstract base class that models a DNS RRset. More... | |
class | BadEscape |
A standard DNS module exception that is thrown if the name parser fails to decode a back-slash escaped sequence. More... | |
class | BadLabelType |
A standard DNS module exception that is thrown if the name parser encounters an obsolete or incomplete label type. More... | |
class | BasicRRset |
The BasicRRset class is a concrete derived class of AbstractRRset that defines a straightforward RRset implementation. More... | |
class | BasicRRsetImpl |
This encapsulates the actual implementation of the BasicRRset class. More... | |
class | DNSMessageBADVERS |
class | DNSMessageFORMERR |
class | DNSProtocolError |
class | DNSTextError |
Base class for all sorts of text parse errors. More... | |
class | EDNS |
The EDNS class represents the EDNS OPT RR defined in RFC2671. More... | |
class | EmptyLabel |
A standard DNS module exception that is thrown if the name parser encounters an empty label in the middle of a name. More... | |
class | EmptyRRset |
A standard DNS module exception that is thrown if an RRset object does not contain any RDATA where required. More... | |
class | Exception |
class | IncompleteName |
A standard DNS module exception that is thrown if the name parser finds the input (string or wire-format data) is incomplete. More... | |
class | IncompleteRRClass |
A standard DNS module exception that is thrown if an RRClass object is being constructed from a incomplete (too short) wire-format data. More... | |
class | IncompleteRRTTL |
A standard DNS module exception that is thrown if an RRTTL object is being constructed from a incomplete (too short) wire-format data. More... | |
class | IncompleteRRType |
A standard DNS module exception that is thrown if an RRType object is being constructed from a incomplete (too short) wire-format data. More... | |
class | InvalidMessageOperation |
A standard DNS module exception that is thrown if a Message class method is called that is prohibited for the current mode of the message. More... | |
class | InvalidMessageSection |
A standard DNS module exception that is thrown if a section iterator is being constructed for an incompatible section. More... | |
class | InvalidMessageUDPSize |
A standard DNS module exception that is thrown if a UDP buffer size smaller than the standard default maximum (DEFAULT_MAX_UDPSIZE) is being specified for the message. More... | |
class | InvalidRRClass |
A standard DNS module exception that is thrown if an RRClass object is being constructed from an unrecognized string. More... | |
class | InvalidRRTTL |
A standard DNS module exception that is thrown if an RRTTL object is being constructed from an unrecognized string. More... | |
class | InvalidRRType |
A standard DNS module exception that is thrown if an RRType object is being constructed from an unrecognized string. More... | |
class | LabelSequence |
Light-weight Accessor to Name data. More... | |
class | MasterLexer |
Tokenizer for parsing DNS master files. More... | |
class | MasterLoader |
A class able to load DNS master files. More... | |
class | MasterLoaderCallbacks |
Set of issue callbacks for a loader. More... | |
class | MasterLoaderError |
Error while loading by MasterLoader without specifying the MANY_ERRORS option. More... | |
class | MasterToken |
Tokens for MasterLexer . More... | |
class | Message |
The Message class encapsulates a standard DNS message. More... | |
class | MessageImpl |
class | MessageRenderer |
The MessageRenderer is a concrete derived class of AbstractMessageRenderer as a general purpose implementation of the renderer interfaces. More... | |
class | MessageTooShort |
A standard DNS module exception that is thrown if a wire format message parser encounters a short length of data that don't even contain the full header section. More... | |
class | MissingNameOrigin |
Thrown when origin is null and is needed. More... | |
class | Name |
The Name class encapsulates DNS names. More... | |
class | NameComparisonResult |
This is a supplemental class used only as a return value of Name::compare() and LabelSequence::compare(). More... | |
class | NameParserException |
Base class for name parser exceptions. More... | |
class | Opcode |
The Opcode class objects represent standard OPCODEs of the header section of DNS messages as defined in RFC1035. More... | |
class | Question |
The Question class encapsulates the common search key of DNS lookup, consisting of owner name, RR type and RR class. More... | |
class | Rcode |
DNS Response Codes (RCODEs) class. More... | |
class | RdataFactory |
class | RdataIterator |
The RdataIterator class is an abstract base class that provides an interface for accessing RDATA objects stored in an RRset. More... | |
class | RRClass |
The RRClass class encapsulates DNS resource record classes. More... | |
class | RRClassExists |
A standard DNS module exception that is thrown if a new RR class is being registered with a different type string. More... | |
class | RRParamRegistry |
The RRParamRegistry class represents a registry of parameters to manipulate DNS resource records (RRs). More... | |
struct | RRParamRegistryImpl |
The RRParamRegistryImpl class is the actual implementation of RRParamRegistry . More... | |
class | RRset |
The RRset class is a concrete derived class of BasicRRset which contains a pointer to an additional RRset containing associated RRSIG records. More... | |
class | RRTTL |
The RRTTL class encapsulates TTLs used in DNS resource records. More... | |
class | RRType |
The RRType class encapsulates DNS resource record types. More... | |
class | RRTypeExists |
A standard DNS module exception that is thrown if a new RR type is being registered with a different type string. More... | |
class | SectionIterator |
SectionIterator is a templated class to provide standard-compatible iterators for Questions and RRsets for a given DNS message section. More... | |
struct | SectionIteratorImpl |
Template version of Section Iterator. More... | |
class | Serial |
This class defines DNS serial numbers and serial arithmetic. More... | |
class | TooLongLabel |
A standard DNS module exception that is thrown if the name parser encounters too long a label. More... | |
class | TooLongName |
A standard DNS module exception that is thrown if the name parser encounters too long a name. More... | |
class | TSIGContext |
TSIG session context. More... | |
class | TSIGContextError |
An exception that is thrown for logic errors identified in TSIG sign/verify operations. More... | |
class | TSIGError |
TSIG errors. More... | |
class | TSIGKey |
TSIG key. More... | |
class | TSIGKeyRing |
A simple repository of a set of TSIGKey objects. More... | |
class | TSIGRecord |
TSIG resource record. More... | |
Typedefs | |
typedef std::function< void(const Name &name, const RRClass &rrclass, const RRType &rrtype, const RRTTL &rrttl, const rdata::RdataPtr &rdata) | AddRRCallback) |
Type of callback to add a RR. | |
typedef boost::shared_ptr< const EDNS > | ConstEDNSPtr |
A pointer-like type pointing to an immutable EDNS object. | |
typedef boost::shared_ptr< const Message > | ConstMessagePtr |
typedef boost::shared_ptr< const Question > | ConstQuestionPtr |
A pointer-like type pointing to an (immutable) Question object. | |
typedef boost::shared_ptr< const AbstractRRset > | ConstRRsetPtr |
A pointer-like type pointing to an (immutable) RRset object. | |
typedef boost::shared_ptr< const TSIGRecord > | ConstTSIGRecordPtr |
A pointer-like type pointing to an immutable TSIGRecord object. | |
typedef boost::shared_ptr< EDNS > | EDNSPtr |
A pointer-like type pointing to an EDNS object. | |
typedef map< RRType, RdataFactoryPtr > | GenericRdataFactoryMap |
typedef boost::shared_ptr< MessageImpl > | MessageImplPtr |
Pointer to the MessageImpl object. | |
typedef boost::shared_ptr< Message > | MessagePtr |
Pointer-like type pointing to a Message . | |
typedef uint16_t | qid_t |
typedef SectionIterator< QuestionPtr > | QuestionIterator |
typedef boost::shared_ptr< Question > | QuestionPtr |
A pointer-like type pointing to an Question object. | |
typedef map< RRTypeClass, RdataFactoryPtr > | RdataFactoryMap |
typedef boost::shared_ptr< RdataIterator > | RdataIteratorPtr |
A pointer-like type point to an RdataIterator object. | |
typedef SectionIterator< RRsetPtr > | RRsetIterator |
typedef boost::shared_ptr< AbstractRRset > | RRsetPtr |
A pointer-like type pointing to an RRset object. | |
typedef pair< RRType, RRClass > | RRTypeClass |
Note: the element ordering in the type/class pair is intentional. | |
typedef boost::shared_ptr< TSIGContext > | TSIGContextPtr |
typedef boost::shared_ptr< TSIGKey > | TSIGKeyPtr |
typedef boost::shared_ptr< TSIGRecord > | TSIGRecordPtr |
A pointer-like type pointing to a TSIGRecord object. | |
Functions | |
EDNS * | createEDNSFromRR (const Name &name, const RRClass &rrclass, const RRType &rrtype, const RRTTL &ttl, const rdata::Rdata &rdata, uint8_t &extended_rcode) |
Create a new EDNS object from a set of RR parameters, also providing the extended RCODE value. | |
ostream & | operator<< (std::ostream &os, const AbstractRRset &rrset) |
Insert the RRset as a string into stream. | |
ostream & | operator<< (std::ostream &os, const EDNS &edns) |
Insert the EDNS as a string into stream. | |
std::ostream & | operator<< (std::ostream &os, const LabelSequence &label_sequence) |
Insert the label sequence as a string into stream. | |
ostream & | operator<< (std::ostream &os, const Message &message) |
Insert the Message as a string into stream. | |
std::ostream & | operator<< (std::ostream &os, const Name &name) |
Insert the name as a string into stream. | |
ostream & | operator<< (std::ostream &os, const Opcode &opcode) |
Insert the Opcode as a string into stream. | |
ostream & | operator<< (std::ostream &os, const Question &question) |
Insert the Question as a string into stream. | |
ostream & | operator<< (std::ostream &os, const Rcode &rcode) |
Insert the Rcode as a string into stream. | |
ostream & | operator<< (std::ostream &os, const RRClass &rrclass) |
Insert the RRClass as a string into stream. | |
ostream & | operator<< (std::ostream &os, const RRTTL &rrttl) |
Insert the RRTTL as a string into stream. | |
ostream & | operator<< (std::ostream &os, const RRType &rrtype) |
Insert the RRType as a string into stream. | |
std::ostream & | operator<< (std::ostream &os, const Serial &serial) |
Helper operator for output streams, writes the value to the stream. | |
std::ostream & | operator<< (std::ostream &os, const TSIGError &tsig_error) |
Insert the TSIGError as a string into stream. | |
std::ostream & | operator<< (std::ostream &os, const TSIGRecord &record) |
Insert the TSIGRecord as a string into stream. | |
MasterLexer::Options | operator| (MasterLexer::Options o1, MasterLexer::Options o2) |
Operator to combine MasterLexer options. | |
Variables | |
const uint32_t | MAX_SERIAL_INCREMENT = 2147483647 |
The maximum difference between two serial numbers. | |
const uint64_t | MAX_SERIAL_VALUE = 4294967296ull |
Maximum value a serial can have, used in + operator. | |
typedef std::function<void(const Name& name, const RRClass& rrclass, const RRType& rrtype, const RRTTL& rrttl, const rdata::RdataPtr& rdata) isc::dns::AddRRCallback) |
Type of callback to add a RR.
This type of callback is used by the loader to report another loaded RR. The Rdata is no longer preserved by the loader and is fully owned by the callback.
name | The domain name where the RR belongs. |
rrclass | The class of the RR. |
rrtype | Type of the RR. |
rrttl | Time to live of the RR. |
rdata | The actual carried data of the RR. |
Definition at line 41 of file master_loader_callbacks.h.
typedef boost::shared_ptr<const EDNS> isc::dns::ConstEDNSPtr |
typedef boost::shared_ptr<const Message> isc::dns::ConstMessagePtr |
typedef boost::shared_ptr<const Question> isc::dns::ConstQuestionPtr |
A pointer-like type pointing to an (immutable) Question
object.
Definition at line 27 of file question.h.
typedef boost::shared_ptr<const AbstractRRset> isc::dns::ConstRRsetPtr |
typedef boost::shared_ptr<const TSIGRecord> isc::dns::ConstTSIGRecordPtr |
A pointer-like type pointing to an immutable TSIGRecord
object.
Definition at line 283 of file tsigrecord.h.
typedef boost::shared_ptr<EDNS> isc::dns::EDNSPtr |
typedef map<RRType, RdataFactoryPtr> isc::dns::GenericRdataFactoryMap |
Definition at line 150 of file rrparamregistry.cc.
typedef boost::shared_ptr< MessageImpl > isc::dns::MessageImplPtr |
Pointer to the MessageImpl object.
Definition at line 139 of file dns/message.cc.
typedef boost::shared_ptr<Message> isc::dns::MessagePtr |
Pointer-like type pointing to a Message
.
This type is expected to be used as an argument in asynchronous callback functions. The internal reference-counting will ensure that that ongoing state information will not be lost if the object that originated the asynchronous call falls out of scope.
typedef uint16_t isc::dns::qid_t |
typedef boost::shared_ptr<Question> isc::dns::QuestionPtr |
A pointer-like type pointing to an Question
object.
Definition at line 24 of file question.h.
typedef map<RRTypeClass, RdataFactoryPtr> isc::dns::RdataFactoryMap |
Definition at line 149 of file rrparamregistry.cc.
typedef boost::shared_ptr<RdataIterator> isc::dns::RdataIteratorPtr |
A pointer-like type point to an RdataIterator
object.
typedef boost::shared_ptr<AbstractRRset> isc::dns::RRsetPtr |
typedef pair<RRType, RRClass> isc::dns::RRTypeClass |
Note: the element ordering in the type/class pair is intentional.
The standard library will perform inequality comparison (i.e, '<') in the way that the second elements (RRClass) are compared only when the first elements are equivalent. In practice, when we compare two pairs of RRType and RRClass, RRClass would be the same (and, in particular, be class IN) in the majority of cases. So this comparison ordering should be more efficient in common cases.
Definition at line 148 of file rrparamregistry.cc.
typedef boost::shared_ptr<TSIGContext> isc::dns::TSIGContextPtr |
typedef boost::shared_ptr<TSIGKey> isc::dns::TSIGKeyPtr |
typedef boost::shared_ptr<TSIGRecord> isc::dns::TSIGRecordPtr |
A pointer-like type pointing to a TSIGRecord
object.
Definition at line 280 of file tsigrecord.h.
EDNS * isc::dns::createEDNSFromRR | ( | const Name & | name, |
const RRClass & | rrclass, | ||
const RRType & | rrtype, | ||
const RRTTL & | ttl, | ||
const rdata::Rdata & | rdata, | ||
uint8_t & | extended_rcode ) |
Create a new EDNS
object from a set of RR parameters, also providing the extended RCODE value.
This function is similar to the EDNS class constructor EDNS::EDNS(const Name&, const RRClass&, const RRType&, const RRTTL&, const rdata::Rdata&)
but is different in that
ttl
.On success, extended_rcode
will be updated with the 8-bit part of the extended RCODE encoded in the TTL of the OPT RR.
The intended usage of this function is to parse an OPT RR of an incoming DNS message, while updating the RCODE of the message. One common usage pattern is as follows:
(although, like the EDNS
constructor, normal applications wouldn't have to use this function directly).
This function provides the strong exception guarantee: Unless an exception is thrown extended_code
won't be modified.
This function validates the given parameters and throws exceptions on failure in the same way as the EDNS
class constructor. In addition, if memory allocation for the new object fails it throws the corresponding standard exception.
Note that this function returns a bare pointer to the newly allocated object, not a shared pointer object enclosing the pointer. The caller is responsible for deleting the object after the use of it (typically, the caller would immediately encapsulate the returned pointer in a shared pointer object, EDNSPtr
or ConstEDNSPtr
). It returns a bare pointer so that it can be used where the use of a shared pointer is impossible or not desirable.
Note to developers: there is no strong technical reason why this function cannot be a constructor of the EDNS
class or even integrated into the constructor. But we decided to make it a separate free function so that constructors will be free from side effects (which is in itself a matter of preference).
name | The owner name of the OPT RR. This must be the root name. |
rrclass | The RR class of the OPT RR. |
rrtype | This must specify the OPT RR type. |
ttl | The TTL of the OPT RR. |
rdata | The RDATA of the OPT RR. |
extended_rcode | A placeholder to store the topmost 8 bits of the extended Rcode. |
EDNS
object. Definition at line 149 of file edns.cc.
Referenced by isc::dns::MessageImpl::addEDNS().
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const AbstractRRset & | rrset ) |
Insert the RRset
as a string into stream.
This method convert the rrset
into a string and inserts it into the output stream os
.
This function overloads the global operator<<
to behave as described in ostream::operator<<
but applied to RRset objects.
os | A std::ostream object on which the insertion operation is performed. |
rrset | A reference to a (derived class of) AbstractRRset object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const EDNS & | edns ) |
Insert the EDNS
as a string into stream.
This method convert edns
into a string and inserts it into the output stream os
.
os | A std::ostream object on which the insertion operation is performed. |
edns | A reference to an EDNS object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const LabelSequence & | label_sequence ) |
Insert the label sequence as a string into stream.
This method convert the label_sequence
into a string and inserts it into the output stream os
.
This function overloads the global operator<< to behave as described in ostream::operator<< but applied to LabelSequence
objects.
os | A std::ostream object on which the insertion operation is performed. |
label_sequence | The LabelSequence object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. Definition at line 461 of file labelsequence.cc.
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const Message & | message ) |
Insert the Message
as a string into stream.
This method convert message
into a string and inserts it into the output stream os
.
os | A std::ostream object on which the insertion operation is performed. |
message | A Message object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. Definition at line 1162 of file dns/message.cc.
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const Name & | name ) |
Insert the name as a string into stream.
This method convert the name
into a string and inserts it into the output stream os
.
This function overloads the global operator<< to behave as described in ostream::operator<< but applied to Name
objects.
os | A std::ostream object on which the insertion operation is performed. |
name | The Name object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. Definition at line 714 of file name.cc.
References isc::dns::Name::toText().
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const Opcode & | opcode ) |
Insert the Opcode
as a string into stream.
This method convert opcode
into a string and inserts it into the output stream os
.
os | A std::ostream object on which the insertion operation is performed. |
opcode | A reference to an Opcode object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const Question & | question ) |
Insert the Question
as a string into stream.
This method convert the question
into a string and inserts it into the output stream os
.
This function overloads the global operator<<
to behave as described in ostream::operator<<
but applied to Question objects.
os | A std::ostream object on which the insertion operation is performed. |
question | A reference to a Question object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. Definition at line 75 of file question.cc.
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const Rcode & | rcode ) |
Insert the Rcode
as a string into stream.
This method convert rcode
into a string and inserts it into the output stream os
.
os | A std::ostream object on which the insertion operation is performed. |
rcode | A reference to an Rcode object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const RRClass & | rrclass ) |
Insert the RRClass
as a string into stream.
This method convert the rrclass
into a string and inserts it into the output stream os
.
This function overloads the global operator<< to behave as described in ostream::operator<< but applied to RRClass
objects.
os | A std::ostream object on which the insertion operation is performed. |
rrclass | The RRClass object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. Definition at line 67 of file rrclass.cc.
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const RRTTL & | rrttl ) |
Insert the RRTTL
as a string into stream.
This method convert the rrttl
into a string and inserts it into the output stream os
.
This function overloads the global operator<< to behave as described in ostream::operator<< but applied to RRTTL
objects.
os | A std::ostream object on which the insertion operation is performed. |
rrttl | The RRTTL object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const RRType & | rrtype ) |
Insert the RRType
as a string into stream.
This method convert the rrtype
into a string and inserts it into the output stream os
.
This function overloads the global operator<< to behave as described in ostream::operator<< but applied to RRType
objects.
os | A std::ostream object on which the insertion operation is performed. |
rrtype | The RRType object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const Serial & | serial ) |
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const TSIGError & | tsig_error ) |
Insert the TSIGError
as a string into stream.
This method convert tsig_error
into a string and inserts it into the output stream os
.
os | A std::ostream object on which the insertion operation is performed. |
tsig_error | An TSIGError object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. Definition at line 61 of file tsigerror.cc.
std::ostream & isc::dns::operator<< | ( | std::ostream & | os, |
const TSIGRecord & | record ) |
Insert the TSIGRecord
as a string into stream.
This method convert record
into a string and inserts it into the output stream os
.
os | A std::ostream object on which the insertion operation is performed. |
record | A TSIGRecord object output by the operation. |
std::ostream
object referenced by parameter os
after the insertion operation. Definition at line 135 of file tsigrecord.cc.
|
inline |
Operator to combine MasterLexer
options.
This is a trivial shortcut so that compound options can be specified in an intuitive way.
Definition at line 669 of file master_lexer.h.
const uint32_t isc::dns::MAX_SERIAL_INCREMENT = 2147483647 |
The maximum difference between two serial numbers.
If the (plain uint32_t) difference between two serials is greater than this number, the smaller one is considered greater.
Definition at line 19 of file serial.h.
Referenced by isc::dns::Serial::operator<().
const uint64_t isc::dns::MAX_SERIAL_VALUE = 4294967296ull |
Maximum value a serial can have, used in + operator.
Definition at line 22 of file serial.h.
Referenced by isc::dns::Serial::operator+().