Blame t/13addrinfo.t

Packit 8bbd3c
#!/usr/bin/perl
Packit 8bbd3c
Packit 8bbd3c
use strict;
Packit 8bbd3c
use warnings;
Packit 8bbd3c
Packit 8bbd3c
use Test::More;
Packit 8bbd3c
Packit 8bbd3c
use IO::Socket::IP;
Packit 8bbd3c
Packit 8bbd3c
use IO::Socket::INET;
Packit 8bbd3c
use Socket qw( SOCK_STREAM unpack_sockaddr_in getaddrinfo );
Packit 8bbd3c
Packit 8bbd3c
{
Packit 8bbd3c
   my $testserver = IO::Socket::INET->new(
Packit 8bbd3c
      Listen    => 1,
Packit 8bbd3c
      LocalHost => "127.0.0.1",
Packit 8bbd3c
      Type      => SOCK_STREAM,
Packit 8bbd3c
   ) or die "Cannot listen on PF_INET - $@";
Packit 8bbd3c
Packit 8bbd3c
   my ( $err, @peeraddrinfo ) = getaddrinfo( "127.0.0.1", $testserver->sockport, { socktype => SOCK_STREAM } );
Packit 8bbd3c
   $err and die "Cannot getaddrinfo 127.0.0.1 - $err";
Packit 8bbd3c
Packit 8bbd3c
   my $socket = IO::Socket::IP->new(
Packit 8bbd3c
      PeerAddrInfo => \@peeraddrinfo,
Packit 8bbd3c
   );
Packit 8bbd3c
Packit 8bbd3c
   ok( defined $socket, 'IO::Socket::IP->new( PeerAddrInfo => ... ) constructs a new socket' ) or
Packit 8bbd3c
      diag( "  error was $@" );
Packit 8bbd3c
Packit 8bbd3c
   is_deeply( [ unpack_sockaddr_in $socket->peername ],
Packit 8bbd3c
              [ unpack_sockaddr_in $testserver->sockname ],
Packit 8bbd3c
              '$socket->peername' );
Packit 8bbd3c
}
Packit 8bbd3c
Packit 8bbd3c
{
Packit 8bbd3c
   my ( $err, @localaddrinfo ) = getaddrinfo( "127.0.0.1", 0, { socktype => SOCK_STREAM } );
Packit 8bbd3c
   $err and die "Cannot getaddrinfo 127.0.0.1 - $err";
Packit 8bbd3c
Packit 8bbd3c
   my $socket = IO::Socket::IP->new(
Packit 8bbd3c
      Listen => 1,
Packit 8bbd3c
      LocalAddrInfo => \@localaddrinfo,
Packit 8bbd3c
   );
Packit 8bbd3c
Packit 8bbd3c
   ok( defined $socket, 'IO::Socket::IP->new( LocalAddrInfo => ... ) constructs a new socket' ) or
Packit 8bbd3c
      diag( "  error was $@" );
Packit 8bbd3c
Packit 8bbd3c
   my $testclient = IO::Socket::INET->new(
Packit 8bbd3c
      PeerHost => "127.0.0.1",
Packit 8bbd3c
      PeerPort => $socket->sockport,
Packit 8bbd3c
   ) or die "Cannot connect to localhost - $@";
Packit 8bbd3c
Packit 8bbd3c
   is_deeply( [ unpack_sockaddr_in $socket->sockname ],
Packit 8bbd3c
              [ unpack_sockaddr_in $testclient->peername ],
Packit 8bbd3c
              '$socket->sockname' );
Packit 8bbd3c
}
Packit 8bbd3c
Packit 8bbd3c
done_testing;