1#ifndef UVW_DNS_INCLUDE_H
2#define UVW_DNS_INCLUDE_H
20 using Deleter = void (*)(addrinfo *);
30 std::unique_ptr<addrinfo, Deleter>
data;
67 static void addrInfoCallback(uv_getaddrinfo_t *req,
int status, addrinfo *res);
68 void nodeAddrInfo(
const char *node,
const char *service, addrinfo *hints =
nullptr);
69 auto nodeAddrInfoSync(
const char *node,
const char *service, addrinfo *hints =
nullptr);
72 using Deleter = void (*)(addrinfo *);
74 using Request::Request;
82 void nodeAddrInfo(
const std::string &node, addrinfo *hints =
nullptr);
95 std::pair<bool, std::unique_ptr<addrinfo, Deleter>>
nodeAddrInfoSync(
const std::string &node, addrinfo *hints =
nullptr);
116 std::pair<bool, std::unique_ptr<addrinfo, Deleter>>
serviceAddrInfoSync(
const std::string &service, addrinfo *hints =
nullptr);
125 void addrInfo(
const std::string &node,
const std::string &service, addrinfo *hints =
nullptr);
139 std::pair<bool, std::unique_ptr<addrinfo, Deleter>>
addrInfoSync(
const std::string &node,
const std::string &service, addrinfo *hints =
nullptr);
151 static void nameInfoCallback(uv_getnameinfo_t *req,
int status,
const char *hostname,
const char *service);
154 using Request::Request;
161 void nameInfo(
const sockaddr &addr,
int flags = 0);
169 template<
typename I = IPv4>
170 void nameInfo(
const std::string &ip,
unsigned int port,
int flags = 0);
177 template<
typename I = IPv4>
192 std::pair<bool, std::pair<const char *, const char *>>
nameInfoSync(
const sockaddr &addr,
int flags = 0);
207 template<
typename I = IPv4>
208 std::pair<bool, std::pair<const char *, const char *>>
nameInfoSync(
const std::string &ip,
unsigned int port,
int flags = 0);
222 template<
typename I = IPv4>
223 std::pair<bool, std::pair<const char *, const char *>>
nameInfoSync(
Addr addr,
int flags = 0);
The GetAddrInfoReq request.
void addrInfo(const std::string &node, const std::string &service, addrinfo *hints=nullptr)
Async getaddrinfo.
std::pair< bool, std::unique_ptr< addrinfo, Deleter > > addrInfoSync(const std::string &node, const std::string &service, addrinfo *hints=nullptr)
Sync getaddrinfo.
std::pair< bool, std::unique_ptr< addrinfo, Deleter > > serviceAddrInfoSync(const std::string &service, addrinfo *hints=nullptr)
Sync getaddrinfo.
std::pair< bool, std::unique_ptr< addrinfo, Deleter > > nodeAddrInfoSync(const std::string &node, addrinfo *hints=nullptr)
Sync getaddrinfo.
void serviceAddrInfo(const std::string &service, addrinfo *hints=nullptr)
Async getaddrinfo.
void nodeAddrInfo(const std::string &node, addrinfo *hints=nullptr)
Async getaddrinfo.
The GetNameInfoReq request.
std::pair< bool, std::pair< const char *, const char * > > nameInfoSync(const std::string &ip, unsigned int port, int flags=0)
Sync getnameinfo.
void nameInfo(Addr addr, int flags=0)
Async getnameinfo.
std::pair< bool, std::pair< const char *, const char * > > nameInfoSync(const sockaddr &addr, int flags=0)
Sync getnameinfo.
void nameInfo(const sockaddr &addr, int flags=0)
Async getnameinfo.
std::pair< bool, std::pair< const char *, const char * > > nameInfoSync(Addr addr, int flags=0)
Sync getnameinfo.
void nameInfo(const std::string &ip, unsigned int port, int flags=0)
Async getnameinfo.
std::unique_ptr< addrinfo, Deleter > data
An initialized instance of addrinfo.
const char * service
A valid service name.
const char * hostname
A valid hostname.