join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
join::DnsMessage Class Reference

DNS message codec. More...

#include <dnsmessage.hpp>

Public Types

enum  RecordType : uint16_t {
  A = 1 , NS = 2 , CNAME = 5 , SOA = 6 ,
  PTR = 12 , MX = 15 , TXT = 16 , AAAA = 28 ,
  SRV = 33 , ANY = 255
}
 DNS record types. More...
 
enum  RecordClass : uint16_t { IN = 1 }
 DNS record classes. More...
 

Public Member Functions

 DnsMessage () noexcept=default
 create the DnsMessage instance.
 
 DnsMessage (const DnsMessage &other)=delete
 copy constructor.
 
DnsMessageoperator= (const DnsMessage &other)=delete
 copy assignment operator.
 
 DnsMessage (DnsMessage &&other)=delete
 move constructor.
 
DnsMessageoperator= (DnsMessage &&other)=delete
 move assignment operator.
 
 ~DnsMessage () noexcept=default
 destroy instance.
 
int serialize (const DnsPacket &packet, std::stringstream &data) const
 serialize a DNS packet into a byte stream.
 
int deserialize (DnsPacket &packet, std::stringstream &data) const
 deserialize a DNS packet from a byte stream.
 

Static Public Member Functions

static std::error_code decodeError (uint16_t error) noexcept
 convert DNS error to system error code.
 
static std::string typeName (uint16_t recordType)
 get record type name.
 
static std::string className (uint16_t recordClass)
 get record class name.
 

Detailed Description

DNS message codec.

Member Enumeration Documentation

◆ RecordClass

DNS record classes.

Enumerator
IN 

Internet.

◆ RecordType

DNS record types.

Enumerator

IPv4 host address.

NS 

Authoritative name server.

CNAME 

Canonical name for an alias.

SOA 

Start of a zone of authority.

PTR 

Domain name pointer.

MX 

Mail exchange.

TXT 

Text strings.

AAAA 

IPv6 host address.

SRV 

Service locator.

ANY 

Any record type.

Constructor & Destructor Documentation

◆ DnsMessage() [1/3]

join::DnsMessage::DnsMessage ( )
defaultnoexcept

create the DnsMessage instance.

◆ DnsMessage() [2/3]

join::DnsMessage::DnsMessage ( const DnsMessage & other)
delete

copy constructor.

Parameters
otherother object to copy.

◆ DnsMessage() [3/3]

join::DnsMessage::DnsMessage ( DnsMessage && other)
delete

move constructor.

Parameters
otherother object to move.

◆ ~DnsMessage()

join::DnsMessage::~DnsMessage ( )
defaultnoexcept

destroy instance.

Member Function Documentation

◆ className()

static std::string join::DnsMessage::className ( uint16_t recordClass)
inlinestatic

get record class name.

Parameters
recordClassrecord class.
Returns
record class name.

◆ decodeError()

static std::error_code join::DnsMessage::decodeError ( uint16_t error)
inlinestaticnoexcept

convert DNS error to system error code.

Parameters
errorDNS error number.
Returns
system error.

◆ deserialize()

int join::DnsMessage::deserialize ( DnsPacket & packet,
std::stringstream & data ) const
inline

deserialize a DNS packet from a byte stream.

Parameters
packetDNS packet to fill.
datainput stream.
Returns
0 on success, -1 on error.

◆ operator=() [1/2]

DnsMessage & join::DnsMessage::operator= ( const DnsMessage & other)
delete

copy assignment operator.

Parameters
otherother object to copy.
Returns
a reference to the current object.

◆ operator=() [2/2]

DnsMessage & join::DnsMessage::operator= ( DnsMessage && other)
delete

move assignment operator.

Parameters
otherother object to move.
Returns
a reference to the current object.

◆ serialize()

int join::DnsMessage::serialize ( const DnsPacket & packet,
std::stringstream & data ) const
inline

serialize a DNS packet into a byte stream.

Parameters
packetDNS packet to serialize.
dataoutput stream.
Returns
0 on success, -1 on error.

◆ typeName()

static std::string join::DnsMessage::typeName ( uint16_t recordType)
inlinestatic

get record type name.

Parameters
recordTyperecord type.
Returns
record type name.

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