ndn::dns Namespace Reference

Classes

struct  AnyAddress
 
struct  Error
 
struct  Ipv4Only
 
struct  Ipv6Only
 

Typedefs

typedef function< bool(const IpAddress &address)> AddressSelector
 
typedef function< void(const std::string &reason)> ErrorCallback
 
typedef boost::asio::ip::address IpAddress
 
typedef function< void(const IpAddress &address)> SuccessCallback
 

Functions

void asyncResolve (const std::string &host, const SuccessCallback &onSuccess, const ErrorCallback &onError, boost::asio::io_service &ioService, const AddressSelector &addressSelector=AnyAddress(), time::nanoseconds timeout=4_s)
 Asynchronously resolve host. More...
 
IpAddress syncResolve (const std::string &host, boost::asio::io_service &ioService, const AddressSelector &addressSelector=AnyAddress())
 Synchronously resolve host. More...
 

Typedef Documentation

typedef function<bool (const IpAddress& address)> ndn::dns::AddressSelector

Definition at line 34 of file dns.hpp.

typedef function<void (const std::string& reason)> ndn::dns::ErrorCallback

Definition at line 73 of file dns.hpp.

typedef boost::asio::ip::address ndn::dns::IpAddress

Definition at line 33 of file dns.hpp.

typedef function<void (const IpAddress& address)> ndn::dns::SuccessCallback

Definition at line 72 of file dns.hpp.

Function Documentation

void ndn::dns::asyncResolve ( const std::string &  host,
const SuccessCallback onSuccess,
const ErrorCallback onError,
boost::asio::io_service &  ioService,
const AddressSelector addressSelector = AnyAddress(),
time::nanoseconds  timeout = 4_s 
)

Asynchronously resolve host.

If an address selector predicate is specified, then each resolved IP address is checked against the predicate.

Available address selector predicates:

  • dns::AnyAddress()
  • dns::Ipv4Address()
  • dns::Ipv6Address()
Warning
Even after the DNS resolution has timed out, it's possible that ioService keeps running and onSuccess is invoked at a later time. This could cause segmentation fault if onSuccess is deallocated. To stop the io_service, explicitly invoke ioService.stop().

Definition at line 132 of file dns.cpp.

IpAddress ndn::dns::syncResolve ( const std::string &  host,
boost::asio::io_service &  ioService,
const AddressSelector addressSelector = AnyAddress() 
)

Synchronously resolve host.

If an address selector predicate is specified, then each resolved IP address is checked against the predicate.

Available address selector predicates:

  • dns::AnyAddress()
  • dns::Ipv4Address()
  • dns::Ipv6Address()

Definition at line 145 of file dns.cpp.