OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BindResolver Class Reference

#include <bind_resolver.h>

Collaboration diagram for BindResolver:

Classes

struct  DnsServer
 

Public Types

typedef boost::function< void(uint8_t
*, std::size_t)> 
Callback
 

Public Member Functions

 BindResolver (boost::asio::io_context &io, const std::vector< DnsServer > &dns_servers, uint16_t client_port, Callback cb, uint8_t dscp)
 
virtual ~BindResolver ()
 
void SetupResolver (const DnsServer &server, uint8_t idx)
 
bool DnsSend (uint8_t *pkt, unsigned int dns_srv_index, std::size_t len)
 
bool DnsSend (uint8_t *pkt, boost::asio::ip::udp::endpoint ep, std::size_t len)
 
void SetDscpValue (uint8_t val)
 
uint8_t GetDscpValue ()
 

Static Public Member Functions

static void Init (boost::asio::io_context &io, const std::vector< DnsServer > &dns_servers, uint16_t client_port, Callback cb, uint8_t dscp)
 
static void Shutdown ()
 
static BindResolverResolver ()
 

Static Public Attributes

static const int max_pkt_size = 1024
 
static const uint8_t max_dns_servers = 2
 

Private Member Functions

void SetDscpSocketOption ()
 
void AsyncRead ()
 
void DnsSendHandler (const boost::system::error_code &error, std::size_t length, uint8_t *pkt)
 
void DnsRcvHandler (const boost::system::error_code &error, std::size_t length)
 
 DISALLOW_COPY_AND_ASSIGN (BindResolver)
 

Private Attributes

uint8_t * pkt_buf_
 
Callback cb_
 
boost::asio::ip::udp::socket sock_
 
std::vector
< boost::asio::ip::udp::endpoint * > 
dns_ep_
 
uint8_t dscp_value_
 

Static Private Attributes

static BindResolverresolver_
 

Detailed Description

Definition at line 14 of file bind_resolver.h.

Member Typedef Documentation

typedef boost::function<void(uint8_t *, std::size_t)> BindResolver::Callback

Definition at line 16 of file bind_resolver.h.

Constructor & Destructor Documentation

BindResolver::BindResolver ( boost::asio::io_context &  io,
const std::vector< DnsServer > &  dns_servers,
uint16_t  client_port,
Callback  cb,
uint8_t  dscp 
)

Definition at line 26 of file bind_resolver.cc.

Here is the call graph for this function:

BindResolver::~BindResolver ( )
virtual

Definition at line 94 of file bind_resolver.cc.

Member Function Documentation

void BindResolver::AsyncRead ( )
private

Definition at line 168 of file bind_resolver.cc.

Here is the call graph for this function:

BindResolver::DISALLOW_COPY_AND_ASSIGN ( BindResolver  )
private
void BindResolver::DnsRcvHandler ( const boost::system::error_code &  error,
std::size_t  length 
)
private

Definition at line 176 of file bind_resolver.cc.

Here is the call graph for this function:

bool BindResolver::DnsSend ( uint8_t *  pkt,
unsigned int  dns_srv_index,
std::size_t  len 
)

Definition at line 126 of file bind_resolver.cc.

Here is the call graph for this function:

bool BindResolver::DnsSend ( uint8_t *  pkt,
boost::asio::ip::udp::endpoint  ep,
std::size_t  len 
)

Definition at line 143 of file bind_resolver.cc.

Here is the call graph for this function:

void BindResolver::DnsSendHandler ( const boost::system::error_code &  error,
std::size_t  length,
uint8_t *  pkt 
)
private

Definition at line 160 of file bind_resolver.cc.

uint8_t BindResolver::GetDscpValue ( )

Definition at line 81 of file bind_resolver.cc.

void BindResolver::Init ( boost::asio::io_context &  io,
const std::vector< DnsServer > &  dns_servers,
uint16_t  client_port,
Callback  cb,
uint8_t  dscp 
)
static

Definition at line 12 of file bind_resolver.cc.

Here is the call graph for this function:

static BindResolver* BindResolver::Resolver ( )
inlinestatic

Definition at line 43 of file bind_resolver.h.

void BindResolver::SetDscpSocketOption ( )
private

Definition at line 62 of file bind_resolver.cc.

void BindResolver::SetDscpValue ( uint8_t  val)

Definition at line 76 of file bind_resolver.cc.

Here is the call graph for this function:

void BindResolver::SetupResolver ( const DnsServer server,
uint8_t  idx 
)

Definition at line 106 of file bind_resolver.cc.

Here is the call graph for this function:

void BindResolver::Shutdown ( )
static

Definition at line 19 of file bind_resolver.cc.

Member Data Documentation

Callback BindResolver::cb_
private

Definition at line 54 of file bind_resolver.h.

std::vector<boost::asio::ip::udp::endpoint *> BindResolver::dns_ep_
private

Definition at line 56 of file bind_resolver.h.

uint8_t BindResolver::dscp_value_
private

Definition at line 57 of file bind_resolver.h.

const uint8_t BindResolver::max_dns_servers = 2
static

Definition at line 18 of file bind_resolver.h.

const int BindResolver::max_pkt_size = 1024
static

Definition at line 17 of file bind_resolver.h.

uint8_t* BindResolver::pkt_buf_
private

Definition at line 53 of file bind_resolver.h.

BindResolver * BindResolver::resolver_
staticprivate

Definition at line 58 of file bind_resolver.h.

boost::asio::ip::udp::socket BindResolver::sock_
private

Definition at line 55 of file bind_resolver.h.


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