xref: /openbsd-src/gnu/usr.bin/perl/cpan/IO-Socket-IP/t/15io-socket.t (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
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