16fb12b70Safresh1#!/usr/bin/perl 26fb12b70Safresh1 3*3d61058aSafresh1use v5.14; 46fb12b70Safresh1use warnings; 56fb12b70Safresh1 66fb12b70Safresh1use Test::More; 76fb12b70Safresh1 86fb12b70Safresh1use IO::Socket; 96fb12b70Safresh1use IO::Socket::IP -register; 106fb12b70Safresh1 116fb12b70Safresh1# AF_INET 126fb12b70Safresh1{ 136fb12b70Safresh1 my $sock = IO::Socket->new( 146fb12b70Safresh1 Domain => AF_INET, 156fb12b70Safresh1 Type => SOCK_STREAM, 166fb12b70Safresh1 LocalHost => "127.0.0.1", 176fb12b70Safresh1 LocalPort => 0, 18b8851fccSafresh1 GetAddrInfoFlags => 0, # disable AI_ADDRCONFIG 196fb12b70Safresh1 ); 206fb12b70Safresh1 21b8851fccSafresh1 isa_ok( $sock, "IO::Socket::IP", 'IO::Socket->new( Domain => AF_INET )' ) or 22*3d61058aSafresh1 diag( " error was $IO::Socket::errstr" ); 236fb12b70Safresh1 246fb12b70Safresh1 $sock = IO::Socket->new( 256fb12b70Safresh1 Domain => AF_INET, 266fb12b70Safresh1 Type => SOCK_STREAM, 276fb12b70Safresh1 LocalHost => "::1", 286fb12b70Safresh1 ); 296fb12b70Safresh1 306fb12b70Safresh1 ok( !defined $sock, 'Domain => AF_INET, LocalHost => "::1" fails' ); 316fb12b70Safresh1} 326fb12b70Safresh1 336fb12b70Safresh1SKIP: { 346fb12b70Safresh1 my $AF_INET6 = eval { Socket::AF_INET6() } || 356fb12b70Safresh1 eval { require Socket6; Socket6::AF_INET6() }; 366fb12b70Safresh1 $AF_INET6 or skip "No AF_INET6", 1; 376fb12b70Safresh1 eval { IO::Socket::IP->new( LocalHost => "::1" ) } or 386fb12b70Safresh1 skip "Unable to bind to ::1", 1; 396fb12b70Safresh1 406fb12b70Safresh1 my $sock = IO::Socket->new( 416fb12b70Safresh1 Domain => $AF_INET6, 426fb12b70Safresh1 Type => SOCK_STREAM, 436fb12b70Safresh1 LocalHost => "::1", 446fb12b70Safresh1 LocalPort => 0, 45b8851fccSafresh1 GetAddrInfoFlags => 0, # disable AI_ADDRCONFIG 466fb12b70Safresh1 ); 476fb12b70Safresh1 486fb12b70Safresh1 isa_ok( $sock, "IO::Socket::IP", 'IO::Socket->new( Domain => AF_INET6 )' ) or 49*3d61058aSafresh1 diag( " error was $IO::Socket::errstr" ); 506fb12b70Safresh1 516fb12b70Safresh1 $sock = IO::Socket->new( 526fb12b70Safresh1 Domain => $AF_INET6, 536fb12b70Safresh1 Type => SOCK_STREAM, 546fb12b70Safresh1 LocalHost => "127.0.0.1", 556fb12b70Safresh1 ); 566fb12b70Safresh1 576fb12b70Safresh1 ok( !defined $sock, 'Domain => AF_INET6, LocalHost => "127.0.0.1" fails' ); 586fb12b70Safresh1} 596fb12b70Safresh1 606fb12b70Safresh1done_testing; 61