clanNetwork Socket

Classes

class  clan::DNSPacket
 DNS packet. More...
 
class  clan::DNSResolver
 DNS resolver. More...
 
class  clan::DNSResourceRecord
 DNS resource record. More...
 
class  clan::SocketName
 Socket name; container class for an IP address and port. More...
 
class  clan::TCPConnection
 TCP connection socket I/O device. More...
 
class  clan::TCPListen
 TCP listen socket. More...
 
class  clan::TLSConnection
 TLS connection over an I/O device. More...
 
class  clan::UDPSocket
 UDP socket. More...
 

Construction

 clan::DNSPacket::DNSPacket ()
 
 clan::DNSPacket::DNSPacket (const DataBuffer &data)
 Constructs a DNSPacket. More...
 
 clan::DNSPacket::DNSPacket (int query_id, int opcode, bool recursion_desired, const std::string &question_name, int question_type, int question_class)
 
 clan::DNSPacket::~DNSPacket ()
 

Attributes

enum  clan::DNSPacket::Opcode { clan::DNSPacket::opcode_query = 0, clan::DNSPacket::opcode_inverse_query = 1, clan::DNSPacket::opcode_status = 2 }
 
enum  clan::DNSPacket::ResponseCode {
  clan::DNSPacket::response_ok = 0, clan::DNSPacket::response_format_error = 1, clan::DNSPacket::response_server_failure = 2, clan::DNSPacket::response_name_error = 3,
  clan::DNSPacket::response_not_implemented = 4, clan::DNSPacket::response_refused = 5
}
 
const DataBufferclan::DNSPacket::get_data () const
 
unsigned short clan::DNSPacket::get_query_id () const
 
bool clan::DNSPacket::is_query () const
 Is Query. More...
 
bool clan::DNSPacket::is_response () const
 Is Response. More...
 
int clan::DNSPacket::get_opcode () const
 Get Opcode. More...
 
bool clan::DNSPacket::is_authoriative_answer () const
 Is Authoriative answer. More...
 
bool clan::DNSPacket::is_truncated () const
 Is Truncated. More...
 
bool clan::DNSPacket::is_recursion_desired () const
 Is Recursion desired. More...
 
bool clan::DNSPacket::is_recursion_available () const
 Is Recursion available. More...
 
int clan::DNSPacket::get_response_code () const
 Get Response code. More...
 
int clan::DNSPacket::get_question_count () const
 Get Question count. More...
 
int clan::DNSPacket::get_answer_count () const
 Get Answer count. More...
 
int clan::DNSPacket::get_nameserver_count () const
 Get Nameserver count. More...
 
int clan::DNSPacket::get_additional_count () const
 Get Additional count. More...
 
std::string clan::DNSPacket::get_question_name (int index) const
 Get question name. More...
 
int clan::DNSPacket::get_question_type (int index) const
 Get question type. More...
 
int clan::DNSPacket::get_question_class (int index) const
 Get question class. More...
 
DNSResourceRecord clan::DNSPacket::get_answer (int index) const
 Get answer. More...
 
DNSResourceRecord clan::DNSPacket::get_nameserver (int index) const
 Get nameserver. More...
 
DNSResourceRecord clan::DNSPacket::get_additional (int index) const
 Get additional. More...
 

Operations

void clan::DNSPacket::set_data (const DataBuffer &data)
 Set data. More...
 
void clan::DNSPacket::set_query_id (unsigned short query_id)
 Set query id. More...
 

Construction

 clan::DNSResolver::DNSResolver ()
 
 clan::DNSResolver::~DNSResolver ()
 

Operations

std::vector< DNSResourceRecordclan::DNSResolver::lookup_resource (const std::string &domain_name, const std::string &resource_type, int timeout)
 
DNSPacket clan::DNSResolver::perform_query (DNSPacket &packet, int timeout, const std::string &dns_server_name)
 
DNSPacket clan::DNSResolver::perform_query (const std::string &domain_name, const std::string &resource_type, int timeout, const std::string &dns_server_name)
 

Construction

 clan::DNSResourceRecord::DNSResourceRecord ()
 
 clan::DNSResourceRecord::~DNSResourceRecord ()
 

Attributes

std::string clan::DNSResourceRecord::get_name () const
 Get Name. More...
 
std::string clan::DNSResourceRecord::get_type () const
 Get Type. More...
 
std::string clan::DNSResourceRecord::get_class () const
 Get Class. More...
 
int clan::DNSResourceRecord::get_ttl () const
 Get Ttl. More...
 
const DNSPacketclan::DNSResourceRecord::get_packet () const
 
int clan::DNSResourceRecord::get_record_offset () const
 Get Record offset. More...
 
int clan::DNSResourceRecord::get_rdata_offset () const
 Get Rdata offset. More...
 
int clan::DNSResourceRecord::get_rdata_length () const
 Get Rdata length. More...
 
std::string clan::DNSResourceRecord::get_cname_cname () const
 Get Cname cname. More...
 
int clan::DNSResourceRecord::get_mx_preference () const
 Get Mx preference. More...
 
std::string clan::DNSResourceRecord::get_mx_exchange () const
 Get Mx exchange. More...
 
std::string clan::DNSResourceRecord::get_ns_nsdname () const
 Get Ns nsdname. More...
 
std::string clan::DNSResourceRecord::get_ptr_ptrdname () const
 Get Ptr ptrdname. More...
 
std::string clan::DNSResourceRecord::get_soa_mname () const
 Get Soa mname. More...
 
std::string clan::DNSResourceRecord::get_soa_rname () const
 Get Soa rname. More...
 
unsigned int clan::DNSResourceRecord::get_soa_serial () const
 
int clan::DNSResourceRecord::get_soa_refresh () const
 Get Soa refresh. More...
 
int clan::DNSResourceRecord::get_soa_retry () const
 Get Soa retry. More...
 
int clan::DNSResourceRecord::get_soa_expire () const
 Get Soa expire. More...
 
unsigned int clan::DNSResourceRecord::get_soa_minimum () const
 
unsigned int clan::DNSResourceRecord::get_a_address () const
 
std::string clan::DNSResourceRecord::get_a_address_str () const
 Get A address str. More...
 
unsigned int clan::DNSResourceRecord::get_wks_address () const
 
std::string clan::DNSResourceRecord::get_wks_address_str () const
 Get Wks address str. More...
 
unsigned char clan::DNSResourceRecord::get_wks_protocol () const
 
DataBuffer clan::DNSResourceRecord::get_wks_bit_map () const
 Get Wks bit map. More...
 

Operation

void clan::DNSResourceRecord::set_record (DNSPacket packet, int record_offset)
 Set record. More...
 
static int clan::DNSResourceRecord::type_to_int (const std::string &qtype)
 Type to int. More...
 
static std::string clan::DNSResourceRecord::type_from_int (int qtype)
 Type from int. More...
 
static std::string clan::DNSResourceRecord::type_description (const std::string &qtype)
 Type description. More...
 
static std::string clan::DNSResourceRecord::type_description (int qtype)
 Type description. More...
 
static int clan::DNSResourceRecord::class_to_int (const std::string &qclass)
 Class to int. More...
 
static std::string clan::DNSResourceRecord::class_from_int (int qclass)
 Class from int. More...
 
static std::string clan::DNSResourceRecord::class_description (const std::string &qclass)
 Class description. More...
 
static std::string clan::DNSResourceRecord::class_description (int qclass)
 Class description. More...
 
static int clan::DNSResourceRecord::find_domain_name_end (const DataBuffer &packet, int offset)
 Find domain name end. More...
 
static std::string clan::DNSResourceRecord::read_domain_name (const DataBuffer &packet, int offset)
 Read domain name. More...
 

Construction

 clan::SocketName::SocketName ()
 Constructs a new socket name. More...
 
 clan::SocketName::SocketName (const std::string &port)
 Constructs a SocketName. More...
 
 clan::SocketName::SocketName (const std::string &address, const std::string &port)
 Constructs a SocketName. More...
 

Attributes

std::string clan::SocketName::get_address () const
 Returns the address part of the socket name. More...
 
std::string clan::SocketName::get_port () const
 Returns the port part of the socket name. More...
 
bool clan::SocketName::operator== (const SocketName &other_instance) const
 Returns true if objects are the same. More...
 
bool clan::SocketName::operator< (const SocketName &other_instance) const
 Returns true if the other address is less. More...
 
bool clan::SocketName::operator> (const SocketName &other_instance) const
 Returns true if the other address is greater. More...
 

Operations

void clan::SocketName::set_name (const std::string &hostname, const std::string &port)
 Set the socket name using a hostname and port. More...
 
void clan::SocketName::set_address (const std::string &address)
 Set the IP address. More...
 
void clan::SocketName::set_port (const std::string &port)
 Set the IP port. More...
 
std::string clan::SocketName::lookup_ipv4 () const
 Perform a DNS lookup, if needed, for the IP v4 address. More...
 
std::string clan::SocketName::lookup_hostname () const
 Perform a DNS lookup, if needed, for the hostname. More...
 
SocketName clan::SocketName::to_ipv4 ()
 Create socket name that uses the IP v4 address as its address. More...
 
SocketName clan::SocketName::to_hostname ()
 Create socket name that uses the hostname as its address. More...
 
void clan::SocketName::to_sockaddr (int domain, sockaddr *addr, int len) const
 Fill the socket name into a C sockets sockaddr structure. More...
 
void clan::SocketName::from_sockaddr (int domain, sockaddr *addr, int len)
 Get the socket name from a C sockets sockaddr structure. More...
 

Construction

 clan::TCPConnection::TCPConnection ()
 
 clan::TCPConnection::TCPConnection (const SocketName &remote)
 Constructs a TCPConnection. More...
 
 clan::TCPConnection::TCPConnection (const SocketName &remote, const SocketName &local)
 Constructs a TCPConnection. More...
 
 clan::TCPConnection::TCPConnection (int socket, bool close_socket)
 Constructs a TCPConnection. More...
 
 clan::TCPConnection::~TCPConnection ()
 

Attributes

int clan::TCPConnection::get_handle () const
 Get Handle. More...
 
SocketName clan::TCPConnection::get_local_name () const
 Get Local name. More...
 
SocketName clan::TCPConnection::get_remote_name () const
 Get Remote name. More...
 
Event clan::TCPConnection::get_read_event ()
 Get Read event. More...
 
Event clan::TCPConnection::get_write_event ()
 Get Write event. More...
 

Operations

void clan::TCPConnection::connect (const SocketName &remote)
 Connect. More...
 
void clan::TCPConnection::connect (const SocketName &remote, const SocketName &local)
 Connect. More...
 
void clan::TCPConnection::set_handle (int socket, bool close_socket)
 Set handle. More...
 
void clan::TCPConnection::disconnect_graceful ()
 Performs a graceful shutdown, ensuring all data is sent before the connection is closed. More...
 
void clan::TCPConnection::disconnect_abortive ()
 Performs an abortive shutdown, closing the connection immediately. More...
 
void clan::TCPConnection::set_nodelay (bool enable=true)
 Disables or enables buffering data before it is sent. More...
 
void clan::TCPConnection::set_keep_alive (bool enable, int timeout=0, int interval=0)
 Enables or disables transmitting keep-alive packets. More...
 

Construction

 clan::TCPListen::TCPListen (const SocketName &name, int queue_size=5, bool force_bind=true)
 Constructs a TCPListen. More...
 
 clan::TCPListen::~TCPListen ()
 

Attributes

Event clan::TCPListen::get_accept_event () const
 Get Accept event. More...
 
int clan::TCPListen::get_handle () const
 Get Handle. More...
 

Operations

TCPConnection clan::TCPListen::accept ()
 Accept. More...
 

Construction

 clan::UDPSocket::UDPSocket ()
 
 clan::UDPSocket::UDPSocket (const SocketName &local_name, bool force_bind=true)
 Constructs a UDPSocket. More...
 
 clan::UDPSocket::UDPSocket (int socket, bool close_socket)
 Constructs a UDPSocket. More...
 
 clan::UDPSocket::~UDPSocket ()
 

Attributes

int clan::UDPSocket::get_handle () const
 Get Handle. More...
 
SocketName clan::UDPSocket::get_local_name () const
 Get Local name. More...
 
Event clan::UDPSocket::get_read_event ()
 Get Read event. More...
 
Event clan::UDPSocket::get_write_event ()
 Get Write event. More...
 

Operations

void clan::UDPSocket::bind (const SocketName &local_name, bool force_bind=true)
 Bind. More...
 
void clan::UDPSocket::set_handle (int socket, bool close_socket)
 Set handle. More...
 
int clan::UDPSocket::send (const void *data, int len, const SocketName &to)
 Send. More...
 
int clan::UDPSocket::receive (void *data, int len, SocketName &out_from)
 Receive. More...
 
int clan::UDPSocket::peek (void *data, int len, SocketName &out_from)
 Peek. More...
 

Construction

 clan::TLSConnection::TLSConnection ()
 
 clan::TLSConnection::TLSConnection (TCPConnection &device)
 Make a TLS connection to a server. More...
 
 clan::TLSConnection::~TLSConnection ()
 

Operations

void clan::TLSConnection::connect (TCPConnection &device)
 Make a TLS connection to a server. More...
 
void clan::TLSConnection::disconnect ()
 Disconnect the TLS connection. More...
 

Detailed Description

Enumeration Type Documentation

◆ Opcode

Enumerator
opcode_query 
opcode_inverse_query 
opcode_status 

◆ ResponseCode

Enumerator
response_ok 
response_format_error 
response_server_failure 
response_name_error 
response_not_implemented 
response_refused 

Function Documentation

◆ DNSPacket() [1/3]

clan::DNSPacket::DNSPacket ( )

◆ DNSPacket() [2/3]

clan::DNSPacket::DNSPacket ( const DataBuffer data)

Constructs a DNSPacket.

Parameters
data= Data Buffer

◆ DNSPacket() [3/3]

clan::DNSPacket::DNSPacket ( int  query_id,
int  opcode,
bool  recursion_desired,
const std::string &  question_name,
int  question_type,
int  question_class 
)

◆ DNSResolver()

clan::DNSResolver::DNSResolver ( )

◆ DNSResourceRecord()

clan::DNSResourceRecord::DNSResourceRecord ( )

◆ SocketName() [1/3]

clan::SocketName::SocketName ( )

Constructs a new socket name.

If no address is specified, the socket address will default to INADDR_ANY. If no port is specified, it will default to port 0.

◆ SocketName() [2/3]

clan::SocketName::SocketName ( const std::string &  port)

Constructs a SocketName.

Parameters
port= String

◆ SocketName() [3/3]

clan::SocketName::SocketName ( const std::string &  address,
const std::string &  port 
)

Constructs a SocketName.

Parameters
address= String
port= String

◆ TCPConnection() [1/4]

clan::TCPConnection::TCPConnection ( )

◆ TCPConnection() [2/4]

clan::TCPConnection::TCPConnection ( const SocketName remote)

Constructs a TCPConnection.

Parameters
remote= Socket Name

◆ TCPConnection() [3/4]

clan::TCPConnection::TCPConnection ( const SocketName remote,
const SocketName local 
)

Constructs a TCPConnection.

Parameters
remote= Socket Name
local= Socket Name

◆ TCPConnection() [4/4]

clan::TCPConnection::TCPConnection ( int  socket,
bool  close_socket 
)

Constructs a TCPConnection.

Parameters
socket= value
close_socket= bool

◆ TCPListen()

clan::TCPListen::TCPListen ( const SocketName name,
int  queue_size = 5,
bool  force_bind = true 
)

Constructs a TCPListen.

Parameters
name= Socket Name
queue_size= value
force_bind= bool

◆ TLSConnection() [1/2]

clan::TLSConnection::TLSConnection ( )

◆ TLSConnection() [2/2]

clan::TLSConnection::TLSConnection ( TCPConnection device)

Make a TLS connection to a server.

Parameters
device= The device

◆ UDPSocket() [1/3]

clan::UDPSocket::UDPSocket ( )

◆ UDPSocket() [2/3]

clan::UDPSocket::UDPSocket ( const SocketName local_name,
bool  force_bind = true 
)

Constructs a UDPSocket.

Parameters
local_name= Socket Name
force_bind= bool

◆ UDPSocket() [3/3]

clan::UDPSocket::UDPSocket ( int  socket,
bool  close_socket 
)

Constructs a UDPSocket.

Parameters
socket= value
close_socket= bool

◆ ~DNSPacket()

clan::DNSPacket::~DNSPacket ( )

◆ ~DNSResolver()

clan::DNSResolver::~DNSResolver ( )

◆ ~DNSResourceRecord()

clan::DNSResourceRecord::~DNSResourceRecord ( )

◆ ~TCPConnection()

clan::TCPConnection::~TCPConnection ( )

◆ ~TCPListen()

clan::TCPListen::~TCPListen ( )

◆ ~TLSConnection()

clan::TLSConnection::~TLSConnection ( )

◆ ~UDPSocket()

clan::UDPSocket::~UDPSocket ( )

◆ accept()

TCPConnection clan::TCPListen::accept ( )

Accept.

Returns
TCPConnection

◆ bind()

void clan::UDPSocket::bind ( const SocketName local_name,
bool  force_bind = true 
)

Bind.

Parameters
local_name= Socket Name
force_bind= bool

◆ class_description() [1/2]

static std::string clan::DNSResourceRecord::class_description ( const std::string &  qclass)
static

Class description.

Parameters
qclass= String
Returns
String

◆ class_description() [2/2]

static std::string clan::DNSResourceRecord::class_description ( int  qclass)
static

Class description.

Parameters
qclass= value
Returns
String

◆ class_from_int()

static std::string clan::DNSResourceRecord::class_from_int ( int  qclass)
static

Class from int.

Parameters
qclass= value
Returns
String

◆ class_to_int()

static int clan::DNSResourceRecord::class_to_int ( const std::string &  qclass)
static

Class to int.

Parameters
qclass= String
Returns
int

◆ connect() [1/3]

void clan::TLSConnection::connect ( TCPConnection device)

Make a TLS connection to a server.

Parameters
device= The device

◆ connect() [2/3]

void clan::TCPConnection::connect ( const SocketName remote)

Connect.

Parameters
remote= Socket Name

◆ connect() [3/3]

void clan::TCPConnection::connect ( const SocketName remote,
const SocketName local 
)

Connect.

Parameters
remote= Socket Name
local= Socket Name

◆ disconnect()

void clan::TLSConnection::disconnect ( )

Disconnect the TLS connection.

◆ disconnect_abortive()

void clan::TCPConnection::disconnect_abortive ( )

Performs an abortive shutdown, closing the connection immediately.

◆ disconnect_graceful()

void clan::TCPConnection::disconnect_graceful ( )

Performs a graceful shutdown, ensuring all data is sent before the connection is closed.

◆ find_domain_name_end()

static int clan::DNSResourceRecord::find_domain_name_end ( const DataBuffer packet,
int  offset 
)
static

Find domain name end.

Parameters
packet= Data Buffer
offset= value
Returns
int

◆ from_sockaddr()

void clan::SocketName::from_sockaddr ( int  domain,
sockaddr *  addr,
int  len 
)

Get the socket name from a C sockets sockaddr structure.

◆ get_a_address()

unsigned int clan::DNSResourceRecord::get_a_address ( ) const

◆ get_a_address_str()

std::string clan::DNSResourceRecord::get_a_address_str ( ) const

Get A address str.

Returns
a_address_str

◆ get_accept_event()

Event clan::TCPListen::get_accept_event ( ) const

Get Accept event.

Returns
accept_event

◆ get_additional()

DNSResourceRecord clan::DNSPacket::get_additional ( int  index) const

Get additional.

Parameters
index= value
Returns
DNSResource Record

◆ get_additional_count()

int clan::DNSPacket::get_additional_count ( ) const

Get Additional count.

Returns
additional_count

◆ get_address()

std::string clan::SocketName::get_address ( ) const

Returns the address part of the socket name.

◆ get_answer()

DNSResourceRecord clan::DNSPacket::get_answer ( int  index) const

Get answer.

Parameters
index= value
Returns
DNSResource Record

◆ get_answer_count()

int clan::DNSPacket::get_answer_count ( ) const

Get Answer count.

Returns
answer_count

◆ get_class()

std::string clan::DNSResourceRecord::get_class ( ) const

Get Class.

Returns
class

◆ get_cname_cname()

std::string clan::DNSResourceRecord::get_cname_cname ( ) const

Get Cname cname.

Returns
cname_cname

◆ get_data()

const DataBuffer& clan::DNSPacket::get_data ( ) const

◆ get_handle() [1/3]

int clan::TCPListen::get_handle ( ) const

Get Handle.

Returns
handle

◆ get_handle() [2/3]

int clan::UDPSocket::get_handle ( ) const

Get Handle.

Returns
handle

◆ get_handle() [3/3]

int clan::TCPConnection::get_handle ( ) const

Get Handle.

Returns
handle

◆ get_local_name() [1/2]

SocketName clan::UDPSocket::get_local_name ( ) const

Get Local name.

Returns
local_name

◆ get_local_name() [2/2]

SocketName clan::TCPConnection::get_local_name ( ) const

Get Local name.

Returns
local_name

◆ get_mx_exchange()

std::string clan::DNSResourceRecord::get_mx_exchange ( ) const

Get Mx exchange.

Returns
mx_exchange

◆ get_mx_preference()

int clan::DNSResourceRecord::get_mx_preference ( ) const

Get Mx preference.

Returns
mx_preference

◆ get_name()

std::string clan::DNSResourceRecord::get_name ( ) const

Get Name.

Returns
name

◆ get_nameserver()

DNSResourceRecord clan::DNSPacket::get_nameserver ( int  index) const

Get nameserver.

Parameters
index= value
Returns
DNSResource Record

◆ get_nameserver_count()

int clan::DNSPacket::get_nameserver_count ( ) const

Get Nameserver count.

Returns
nameserver_count

◆ get_ns_nsdname()

std::string clan::DNSResourceRecord::get_ns_nsdname ( ) const

Get Ns nsdname.

Returns
ns_nsdname

◆ get_opcode()

int clan::DNSPacket::get_opcode ( ) const

Get Opcode.

Returns
opcode

◆ get_packet()

const DNSPacket& clan::DNSResourceRecord::get_packet ( ) const

◆ get_port()

std::string clan::SocketName::get_port ( ) const

Returns the port part of the socket name.

◆ get_ptr_ptrdname()

std::string clan::DNSResourceRecord::get_ptr_ptrdname ( ) const

Get Ptr ptrdname.

Returns
ptr_ptrdname

◆ get_query_id()

unsigned short clan::DNSPacket::get_query_id ( ) const

◆ get_question_class()

int clan::DNSPacket::get_question_class ( int  index) const

Get question class.

Parameters
index= value
Returns
int

◆ get_question_count()

int clan::DNSPacket::get_question_count ( ) const

Get Question count.

Returns
question_count

◆ get_question_name()

std::string clan::DNSPacket::get_question_name ( int  index) const

Get question name.

Parameters
index= value
Returns
String

◆ get_question_type()

int clan::DNSPacket::get_question_type ( int  index) const

Get question type.

Parameters
index= value
Returns
int

◆ get_rdata_length()

int clan::DNSResourceRecord::get_rdata_length ( ) const

Get Rdata length.

Returns
rdata_length

◆ get_rdata_offset()

int clan::DNSResourceRecord::get_rdata_offset ( ) const

Get Rdata offset.

Returns
rdata_offset

◆ get_read_event() [1/2]

Event clan::UDPSocket::get_read_event ( )

Get Read event.

Returns
read_event

◆ get_read_event() [2/2]

Event clan::TCPConnection::get_read_event ( )

Get Read event.

Returns
read_event

◆ get_record_offset()

int clan::DNSResourceRecord::get_record_offset ( ) const

Get Record offset.

Returns
record_offset

◆ get_remote_name()

SocketName clan::TCPConnection::get_remote_name ( ) const

Get Remote name.

Returns
remote_name

◆ get_response_code()

int clan::DNSPacket::get_response_code ( ) const

Get Response code.

Returns
response_code

◆ get_soa_expire()

int clan::DNSResourceRecord::get_soa_expire ( ) const

Get Soa expire.

Returns
soa_expire

◆ get_soa_minimum()

unsigned int clan::DNSResourceRecord::get_soa_minimum ( ) const

◆ get_soa_mname()

std::string clan::DNSResourceRecord::get_soa_mname ( ) const

Get Soa mname.

Returns
soa_mname

◆ get_soa_refresh()

int clan::DNSResourceRecord::get_soa_refresh ( ) const

Get Soa refresh.

Returns
soa_refresh

◆ get_soa_retry()

int clan::DNSResourceRecord::get_soa_retry ( ) const

Get Soa retry.

Returns
soa_retry

◆ get_soa_rname()

std::string clan::DNSResourceRecord::get_soa_rname ( ) const

Get Soa rname.

Returns
soa_rname

◆ get_soa_serial()

unsigned int clan::DNSResourceRecord::get_soa_serial ( ) const

◆ get_ttl()

int clan::DNSResourceRecord::get_ttl ( ) const

Get Ttl.

Returns
ttl

◆ get_type()

std::string clan::DNSResourceRecord::get_type ( ) const

Get Type.

Returns
type

◆ get_wks_address()

unsigned int clan::DNSResourceRecord::get_wks_address ( ) const

◆ get_wks_address_str()

std::string clan::DNSResourceRecord::get_wks_address_str ( ) const

Get Wks address str.

Returns
wks_address_str

◆ get_wks_bit_map()

DataBuffer clan::DNSResourceRecord::get_wks_bit_map ( ) const

Get Wks bit map.

Returns
wks_bit_map

◆ get_wks_protocol()

unsigned char clan::DNSResourceRecord::get_wks_protocol ( ) const

◆ get_write_event() [1/2]

Event clan::UDPSocket::get_write_event ( )

Get Write event.

Returns
write_event

◆ get_write_event() [2/2]

Event clan::TCPConnection::get_write_event ( )

Get Write event.

Returns
write_event

◆ is_authoriative_answer()

bool clan::DNSPacket::is_authoriative_answer ( ) const

Is Authoriative answer.

Returns
true = authoriative_answer

◆ is_query()

bool clan::DNSPacket::is_query ( ) const

Is Query.

Returns
true = query

◆ is_recursion_available()

bool clan::DNSPacket::is_recursion_available ( ) const

Is Recursion available.

Returns
true = recursion_available

◆ is_recursion_desired()

bool clan::DNSPacket::is_recursion_desired ( ) const

Is Recursion desired.

Returns
true = recursion_desired

◆ is_response()

bool clan::DNSPacket::is_response ( ) const

Is Response.

Returns
true = response

◆ is_truncated()

bool clan::DNSPacket::is_truncated ( ) const

Is Truncated.

Returns
true = truncated

◆ lookup_hostname()

std::string clan::SocketName::lookup_hostname ( ) const

Perform a DNS lookup, if needed, for the hostname.

◆ lookup_ipv4()

std::string clan::SocketName::lookup_ipv4 ( ) const

Perform a DNS lookup, if needed, for the IP v4 address.

◆ lookup_resource()

std::vector<DNSResourceRecord> clan::DNSResolver::lookup_resource ( const std::string &  domain_name,
const std::string &  resource_type,
int  timeout 
)

◆ operator<()

bool clan::SocketName::operator< ( const SocketName other_instance) const

Returns true if the other address is less.

This is used for sorting purposes (eg. if you use a std::map<SocketName, Socket>), and sorts the address based on lowest IP number address.

◆ operator==()

bool clan::SocketName::operator== ( const SocketName other_instance) const

Returns true if objects are the same.

◆ operator>()

bool clan::SocketName::operator> ( const SocketName other_instance) const

Returns true if the other address is greater.

This is used for sorting purposes (eg. if you use a std::map<SocketName, Socket>), and sorts the address based on lowest IP number address.

◆ peek()

int clan::UDPSocket::peek ( void *  data,
int  len,
SocketName out_from 
)

Peek.

Parameters
data= void
len= value
out_from= Socket Name
Returns
int

◆ perform_query() [1/2]

DNSPacket clan::DNSResolver::perform_query ( DNSPacket packet,
int  timeout,
const std::string &  dns_server_name 
)

◆ perform_query() [2/2]

DNSPacket clan::DNSResolver::perform_query ( const std::string &  domain_name,
const std::string &  resource_type,
int  timeout,
const std::string &  dns_server_name 
)

◆ read_domain_name()

static std::string clan::DNSResourceRecord::read_domain_name ( const DataBuffer packet,
int  offset 
)
static

Read domain name.

Parameters
packet= Data Buffer
offset= value
Returns
String

◆ receive()

int clan::UDPSocket::receive ( void *  data,
int  len,
SocketName out_from 
)

Receive.

Parameters
data= void
len= value
out_from= Socket Name
Returns
int

◆ send()

int clan::UDPSocket::send ( const void *  data,
int  len,
const SocketName to 
)

Send.

Parameters
data= void
len= value
to= Socket Name
Returns
int

◆ set_address()

void clan::SocketName::set_address ( const std::string &  address)

Set the IP address.

◆ set_data()

void clan::DNSPacket::set_data ( const DataBuffer data)

Set data.

Parameters
data= Data Buffer

◆ set_handle() [1/2]

void clan::UDPSocket::set_handle ( int  socket,
bool  close_socket 
)

Set handle.

Parameters
socket= value
close_socket= bool

◆ set_handle() [2/2]

void clan::TCPConnection::set_handle ( int  socket,
bool  close_socket 
)

Set handle.

Parameters
socket= value
close_socket= bool

◆ set_keep_alive()

void clan::TCPConnection::set_keep_alive ( bool  enable,
int  timeout = 0,
int  interval = 0 
)

Enables or disables transmitting keep-alive packets.

Parameters
enable= True to enable keep-alive, false to disable
timeout= Specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent.
interval= Specifies the interval, in milliseconds, between when successive keep-alive packets are sent if no acknowledgment is received.

Both timeout and interval must be set to a non-zero value before any of them are used. They cannot be specified individually.

◆ set_name()

void clan::SocketName::set_name ( const std::string &  hostname,
const std::string &  port 
)

Set the socket name using a hostname and port.

Parameters
hostnameCan be an IPv4 dotted-quad, hostname or a valid IPv6 address.
portPort number.

◆ set_nodelay()

void clan::TCPConnection::set_nodelay ( bool  enable = true)

Disables or enables buffering data before it is sent.

◆ set_port()

void clan::SocketName::set_port ( const std::string &  port)

Set the IP port.

◆ set_query_id()

void clan::DNSPacket::set_query_id ( unsigned short  query_id)

Set query id.

Parameters
query_id= short

◆ set_record()

void clan::DNSResourceRecord::set_record ( DNSPacket  packet,
int  record_offset 
)

Set record.

Parameters
packet= DNSPacket
record_offset= value

◆ to_hostname()

SocketName clan::SocketName::to_hostname ( )

Create socket name that uses the hostname as its address.

◆ to_ipv4()

SocketName clan::SocketName::to_ipv4 ( )

Create socket name that uses the IP v4 address as its address.

◆ to_sockaddr()

void clan::SocketName::to_sockaddr ( int  domain,
sockaddr *  addr,
int  len 
) const

Fill the socket name into a C sockets sockaddr structure.

◆ type_description() [1/2]

static std::string clan::DNSResourceRecord::type_description ( const std::string &  qtype)
static

Type description.

Parameters
qtype= String
Returns
String

◆ type_description() [2/2]

static std::string clan::DNSResourceRecord::type_description ( int  qtype)
static

Type description.

Parameters
qtype= value
Returns
String

◆ type_from_int()

static std::string clan::DNSResourceRecord::type_from_int ( int  qtype)
static

Type from int.

Parameters
qtype= value
Returns
String

◆ type_to_int()

static int clan::DNSResourceRecord::type_to_int ( const std::string &  qtype)
static

Type to int.

Parameters
qtype= String
Returns
int