diff options
author | Enji Cooper <ngie@FreeBSD.org> | 2025-08-08 19:24:09 +0000 |
---|---|---|
committer | Enji Cooper <ngie@FreeBSD.org> | 2025-08-08 19:33:57 +0000 |
commit | fbc35f82f0eca4571df0d753da74571e01ace763 (patch) | |
tree | b1140e447e6c40c2bc65e7fc3413664fe98c3666 /util/perl/TLSProxy/Proxy.pm | |
parent | 1095efe41feed8ea5a6fe5ca123c347ae0914801 (diff) |
Diffstat (limited to 'util/perl/TLSProxy/Proxy.pm')
-rw-r--r-- | util/perl/TLSProxy/Proxy.pm | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm index b76f9e931ec0..ccc4814f6fd2 100644 --- a/util/perl/TLSProxy/Proxy.pm +++ b/util/perl/TLSProxy/Proxy.pm @@ -97,7 +97,23 @@ sub new_dtls { sub init { - require IO::Socket::IP; + my $useSockInet = 0; + eval { + require IO::Socket::IP; + my $s = IO::Socket::IP->new( + LocalAddr => "::1", + LocalPort => 0, + Listen=>1, + ); + $s or die "\n"; + $s->close(); + }; + if ($@ eq "") { + require IO::Socket::IP; + } else { + $useSockInet = 1; + } + my $class = shift; my ($filter, $execute, @@ -118,8 +134,13 @@ sub init $test_client_port = 49152 + int(rand(65535 - 49152)); my $test_sock; if ($useINET6 == 0) { - $test_sock = IO::Socket::IP->new(LocalPort => $test_client_port, - LocalAddr => $test_client_addr); + if ($useSockInet == 0) { + $test_sock = IO::Socket::IP->new(LocalPort => $test_client_port, + LocalAddr => $test_client_addr); + } else { + $test_sock = IO::Socket::INET->new(LocalAddr => $test_client_addr, + LocalPort => $test_client_port); + } } else { $test_sock = IO::Socket::INET6->new(LocalAddr => $test_client_addr, LocalPort => $test_client_port, |