47 uint32_t v6scope = 0);
54 [[nodiscard]] std::string
address()
const {
57 [[nodiscard]] uint16_t
port()
const;
64 [[nodiscard]] std::string
toString()
const;
67 std::variant<struct sockaddr_in, struct sockaddr_in6>
addr_;
71 static std::string
operator()(
const struct sockaddr_in &ipv4);
72 static std::string
operator()(
const struct sockaddr_in6 &ipv6);
73 static std::string
ntop(
int family,
void *addr);
85 int af_hint = AF_UNSPEC);
89 int af_hint = AF_UNSPEC);
96 struct addrinfo *result);
static constexpr size_t ipv4Length
Definition name_resolution.h:36
std::string address() const
Definition name_resolution.h:54
std::variant< struct sockaddr_in, struct sockaddr_in6 > addr_
Definition name_resolution.h:67
AddressHandle(AddressHandle &&)=default
int family() const
Family is either AF_INET or AF_INET6.
Definition name_resolution.cc:76
const struct sockaddr * sockaddr() const
Definition name_resolution.cc:83
AddressHandle(const AddressHandle &)=default
std::string toString() const
Definition name_resolution.cc:58
uint16_t port() const
Definition name_resolution.cc:67
AddressHandle & operator=(AddressHandle &&)=default
static constexpr size_t ipv6Length
Definition name_resolution.h:37
AddressHandle & operator=(const AddressHandle &)=default
Resolver(const Loop &loop)
Instantiate a resolver based on an event loop.
Definition name_resolution.h:81
const Loop * loop_
Definition name_resolution.h:92
Promise< AddressHandle > gai(std::string_view host, std::string_view port, int af_hint=AF_UNSPEC)
Resolve a host and port string. Throws an UvcoException upon error.
Definition name_resolution.cc:227
static void onAddrinfo(uv_getaddrinfo_t *req, uv_status status, struct addrinfo *result)
Called after finishing a getaddrinfo call.
Definition name_resolution.cc:247
int uv_status
Result of a libuv operation, an errno error code.
Definition internal_utils.h:22
Definition async_work.cc:18
A helper for calling inet_ntop(3).
Definition name_resolution.h:70
static std::string operator()(const struct sockaddr_in &ipv4)
Definition name_resolution.cc:168
static std::string ntop(int family, void *addr)
Definition name_resolution.cc:147