use TLSProxy::NextProto;
my $have_IPv6;
+my $useINET6;
my $IP_factory;
BEGIN
if ($@ eq "") {
$IP_factory = sub { IO::Socket::INET6->new(Domain => AF_INET6, @_); };
$have_IPv6 = 1;
+ $useINET6 = 1;
} else {
eval {
require IO::Socket::IP;
if ($@ eq "") {
$IP_factory = sub { IO::Socket::IP->new(@_); };
$have_IPv6 = 1;
+ $useINET6 = 0;
} else {
$IP_factory = sub { IO::Socket::INET->new(@_); };
$have_IPv6 = 0;
+ $useINET6 = 0;
}
}
}
for (my $i = 0; $i <= 10; $i++) {
$test_client_port = 49152 + int(rand(65535 - 49152));
my $test_sock;
- if ($have_IPv6) {
- $test_sock = IO::Socket::IP->new(Family => AF_INET6,
- LocalPort => $test_client_port,
+ if ($useINET6 == 0) {
+ $test_sock = IO::Socket::IP->new(LocalPort => $test_client_port,
LocalAddr => $test_client_addr);
} else {
- $test_sock = IO::Socket::IP->new(Family => AF_INET,
- LocalPort => $test_client_port,
- LocalAddr => $test_client_addr);
+ $test_sock = IO::Socket::INET6->new(LocalAddr => $test_client_addr,
+ LocalPort => $test_client_port,
+ Domain => AF_INET6);
}
if ($test_sock) {
$found_port = 1;
print "Found available client port ${test_client_port}\n";
last;
}
- print "Port ${test_client_port} in use. Trying again\n";
+ print "Port ${test_client_port} in use - $@\n";
}
if ($found_port == 0) {