in src/network/_Private/resolve_hostname.php [17:42]
function resolve_hostname(OS\AddressFamily $af, string $host): ?string {
// FIXME: add OS\getaddrinfo, kill this function.
switch ($af) {
case OS\AddressFamily::AF_INET:
// if it's already a valid IP, it just returns the input.
return \gethostbyname($host);
case OS\AddressFamily::AF_INET6:
if (\filter_var($host, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6)) {
return $host;
}
$authns = null;
$addtl = null;
return \dns_get_record(
$host,
\DNS_AAAA,
inout $authns,
inout $addtl,
)['AAAA'] ??
null;
default:
_OS\throw_errno(
OS\Errno::EAFNOSUPPORT,
"Can only resolve hostnames to IPv4 and IPv6 addresses",
);
}
}