16fb12b70Safresh1#!/usr/bin/perl 26fb12b70Safresh1 3*5486feefSafresh1use v5.14; 46fb12b70Safresh1use warnings; 56fb12b70Safresh1 66fb12b70Safresh1use Test::More; 76fb12b70Safresh1 86fb12b70Safresh1use IO::Socket::IP; 96fb12b70Safresh1use Socket 1.95 qw( 106fb12b70Safresh1 PF_INET SOCK_STREAM IPPROTO_TCP pack_sockaddr_in INADDR_ANY 116fb12b70Safresh1 AI_PASSIVE 126fb12b70Safresh1); 136fb12b70Safresh1 146fb12b70Safresh1my $AI_ADDRCONFIG = eval { Socket::AI_ADDRCONFIG() } || 0; 156fb12b70Safresh1 166fb12b70Safresh1my @gai_args; 176fb12b70Safresh1my @gai_rets; 186fb12b70Safresh1 196fb12b70Safresh1no strict 'refs'; 206fb12b70Safresh1no warnings 'redefine'; 216fb12b70Safresh1 226fb12b70Safresh1*{"IO::Socket::IP::getaddrinfo"} = sub { 236fb12b70Safresh1 push @gai_args, [ @_ ]; 246fb12b70Safresh1 return @{ shift @gai_rets }; 256fb12b70Safresh1}; 266fb12b70Safresh1 276fb12b70Safresh1@gai_rets = ( 286fb12b70Safresh1 [ "Service unknown" ], 296fb12b70Safresh1 [ "", { 306fb12b70Safresh1 family => PF_INET, 316fb12b70Safresh1 socktype => SOCK_STREAM, 326fb12b70Safresh1 protocol => IPPROTO_TCP, 336fb12b70Safresh1 addr => pack_sockaddr_in( 80, INADDR_ANY ) 346fb12b70Safresh1 } ], 356fb12b70Safresh1); 366fb12b70Safresh1 376fb12b70Safresh1IO::Socket::IP->new( LocalPort => "zyxxyblarg(80)" ); 386fb12b70Safresh1 396fb12b70Safresh1is_deeply( \@gai_args, 406fb12b70Safresh1 [ 416fb12b70Safresh1 [ undef, "zyxxyblarg", { flags => AI_PASSIVE|$AI_ADDRCONFIG, socktype => SOCK_STREAM, protocol => IPPROTO_TCP } ], 426fb12b70Safresh1 [ undef, "80", { flags => AI_PASSIVE|$AI_ADDRCONFIG, socktype => SOCK_STREAM, protocol => IPPROTO_TCP } ], 436fb12b70Safresh1 ], 446fb12b70Safresh1 '@gai_args for LocalPort => "zyxxyblarg(80)"' ); 456fb12b70Safresh1 466fb12b70Safresh1done_testing; 47