IO::Socket::IP is bundled with Perl 5.24+ so it's more likely
to be available than IO::Socket::INET6.
---
 lib/PublicInbox/TestCommon.pm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 17057e18..b1a37ced 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -62,8 +62,12 @@ sub tcp_server () {
        );
        eval {
                die 'IPv4-only' if $ENV{TEST_IPV4_ONLY};
-               require IO::Socket::INET6;
-               IO::Socket::INET6->new(%opt, LocalAddr => '[::1]')
+               my $pkg;
+               for (qw(IO::Socket::IP IO::Socket::INET6)) {
+                       eval "require $_" or next;
+                       $pkg = $_ and last;
+               }
+               $pkg->new(%opt, LocalAddr => '[::1]');
        } || eval {
                die 'IPv6-only' if $ENV{TEST_IPV6_ONLY};
                IO::Socket::INET->new(%opt, LocalAddr => '127.0.0.1')

Reply via email to