DwmDns-0.1.0
Dwm::Dns::NameServer Class Reference

Encapsulates a DNS name server, from the perspective of a DNS client. More...

#include <DwmDnsNameServer.hh>

Public Types

typedef std::tuple< sa_family_t, const struct sockaddr *, socklen_t > AddrInfo
 

Public Member Functions

 NameServer (const struct in_addr &addr)
 Constructs a name server whose IPv4 address is addr.
 
 NameServer (const struct in6_addr &addr)
 Constructs a name server whose IPv6 address is addr.
 
 NameServer (const std::string &addr)
 Constructs a name server whose IP address is addr. More...
 
 NameServer (const NameServer &)=default
 Copy constructor.
 
NameServeroperator= (const NameServer &)=default
 Copy operator.
 
 ~NameServer ()
 Destructor.
 
AddrInfo Address () const
 Returns the address of the name server.
 
bool SendMessage (const Message &message)
 Sends the given message to the name server via UDP. More...
 
bool WriteMessage (const Message &message)
 Sends the given message to the name server via TCP. More...
 
bool ReceiveMessage (Message &message)
 Receives a message from the name server via UDP. More...
 
bool ReadMessage (Message &message)
 Reads a message from the name server via TCP. More...
 
bool AnswerWaiting (const struct timeval &timeout) const
 Returns true if there is a UDP message ready to be read via ReceiveMessage(). More...
 

Detailed Description

Encapsulates a DNS name server, from the perspective of a DNS client.

Constructor & Destructor Documentation

◆ NameServer()

Dwm::Dns::NameServer::NameServer ( const std::string &  addr)

Constructs a name server whose IP address is addr.

addr may be an IPv4 or IPv6 address. Throws std::invalid_argument if addr is not a valid IPv4 or IPv6 address.

Member Function Documentation

◆ AnswerWaiting()

bool Dwm::Dns::NameServer::AnswerWaiting ( const struct timeval &  timeout) const

Returns true if there is a UDP message ready to be read via ReceiveMessage().

timeout is the time to wait for a message to be ready.

◆ ReadMessage()

bool Dwm::Dns::NameServer::ReadMessage ( Message message)

Reads a message from the name server via TCP.

Returns true on success, false on failure.

◆ ReceiveMessage()

bool Dwm::Dns::NameServer::ReceiveMessage ( Message message)

Receives a message from the name server via UDP.

Returns true on success, false on failure.

◆ SendMessage()

bool Dwm::Dns::NameServer::SendMessage ( const Message message)

Sends the given message to the name server via UDP.

Returns true on success, false on failure.

◆ WriteMessage()

bool Dwm::Dns::NameServer::WriteMessage ( const Message message)

Sends the given message to the name server via TCP.

Returns true on success, false on failure.


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