tdns
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Public Attributes | List of all members
DNSMessageWriter Class Reference

A DNS Message writer. More...

#include <dnsmessages.hh>

Collaboration diagram for DNSMessageWriter:
[legend]

Public Member Functions

 DNSMessageWriter (const DNSName &name, DNSType type, DNSClass qclass=DNSClass::IN, int maxsize=500)
 
 ~DNSMessageWriter ()
 
 DNSMessageWriter (const DNSMessageWriter &)=delete
 
DNSMessageWriteroperator= (const DNSMessageWriter &)=delete
 
void randomizeID ()
 Randomize the id field of our dnsheader. More...
 
void clearRRs ()
 
void putRR (DNSSection section, const DNSName &name, uint32_t ttl, const std::unique_ptr< RRGen > &rr, DNSClass dclass=DNSClass::IN)
 
void setEDNS (uint16_t bufsize, bool doBit, RCode ercode=(RCode) 0)
 
std::string serialize ()
 
void xfrUInt8 (uint8_t val)
 
void xfrType (DNSType val)
 
uint16_t xfrUInt16 (uint16_t val)
 
void xfrUInt16At (uint16_t pos, uint16_t val)
 
void xfrUInt32 (uint32_t val)
 
void xfrTxt (const std::string &blob)
 
void xfrBlob (const std::string &blob)
 
void xfrBlob (const unsigned char *blob, int size)
 
void xfrName (const DNSName &name, bool compress=true)
 

Public Attributes

struct dnsheader dh =dnsheader{}
 
std::vector< uint8_t > payload
 
uint16_t payloadpos =0
 
DNSName d_qname
 
DNSType d_qtype
 
DNSClass d_qclass {DNSClass::IN}
 
bool haveEDNS {false}
 
bool d_doBit
 
bool d_nocompress {false}
 
RCode d_ercode {(RCode)0}
 

Detailed Description

A DNS Message writer.

Constructor & Destructor Documentation

DNSMessageWriter::DNSMessageWriter ( const DNSName name,
DNSType  type,
DNSClass  qclass = DNSClass::IN,
int  maxsize = 500 
)

Here is the call graph for this function:

DNSMessageWriter::~DNSMessageWriter ( )
default
DNSMessageWriter::DNSMessageWriter ( const DNSMessageWriter )
delete

Member Function Documentation

void DNSMessageWriter::clearRRs ( )

Here is the call graph for this function:

DNSMessageWriter& DNSMessageWriter::operator= ( const DNSMessageWriter )
delete
void DNSMessageWriter::putRR ( DNSSection  section,
const DNSName name,
uint32_t  ttl,
const std::unique_ptr< RRGen > &  rr,
DNSClass  dclass = DNSClass::IN 
)
void DNSMessageWriter::randomizeID ( )

Randomize the id field of our dnsheader.

string DNSMessageWriter::serialize ( )
void DNSMessageWriter::setEDNS ( uint16_t  bufsize,
bool  doBit,
RCode  ercode = (RCode)0 
)
void DNSMessageWriter::xfrBlob ( const std::string &  blob)
inline
void DNSMessageWriter::xfrBlob ( const unsigned char *  blob,
int  size 
)
inline
void DNSMessageWriter::xfrName ( const DNSName name,
bool  compress = true 
)

Here is the call graph for this function:

void DNSMessageWriter::xfrTxt ( const std::string &  blob)
inline

Here is the call graph for this function:

void DNSMessageWriter::xfrType ( DNSType  val)
inline

Here is the call graph for this function:

uint16_t DNSMessageWriter::xfrUInt16 ( uint16_t  val)
inline
void DNSMessageWriter::xfrUInt16At ( uint16_t  pos,
uint16_t  val 
)
inline
void DNSMessageWriter::xfrUInt32 ( uint32_t  val)
inline
void DNSMessageWriter::xfrUInt8 ( uint8_t  val)
inline

Member Data Documentation

bool DNSMessageWriter::d_doBit
RCode DNSMessageWriter::d_ercode {(RCode)0}
bool DNSMessageWriter::d_nocompress {false}
DNSClass DNSMessageWriter::d_qclass {DNSClass::IN}
DNSName DNSMessageWriter::d_qname
DNSType DNSMessageWriter::d_qtype
struct dnsheader DNSMessageWriter::dh =dnsheader{}
bool DNSMessageWriter::haveEDNS {false}
std::vector<uint8_t> DNSMessageWriter::payload
uint16_t DNSMessageWriter::payloadpos =0

The documentation for this class was generated from the following files: