use warnings;
use POSIX qw(EINTR);
use IO::Socket::IP;
-use Socket qw(AF_INET AF_INET6);
+use Socket qw(AF_INET AF_INET6 AI_ALL AI_V4MAPPED);
use IO::Select;
use File::Basename;
use File::Path qw(make_path);
return ($family, $port, $host);
}
+sub get_host_address_family {
+ my ($hostname, $socktype) = @_;
+ my %hints = ( flags => AI_V4MAPPED | AI_ALL,
+ socktype => $socktype );
+ my ($err, @res) = Socket::getaddrinfo($hostname, '0', \%hints);
+ die "failed to resolve $hostname: $err\n" if $err;
+
+ return ${res[0]}->{family};
+}
+
1;