Condition Coverage

blib/lib/Net/Server/Proto.pm
Criterion Covered Total %
condition 63 145 43.4


and 3 conditions

line !l l&&!r l&&r condition
52 0 0 0 $have6 || !defined($have6) && eval { do { ($have6 = 0) = require Socket6 } } and grep {$_ eq $func;} @Socket6::EXPORT, @Socket6::EXPORT_OK
108 705 75 0 not defined $have6 and eval { do { ($have6 ||= 0) ||= do { require Socket6; 1 } } }
197 63 0 64 defined $host && length $host
224 40 82 0 $ipv and not $ipv =~ /[46*]/
226 76 0 46 !$ipv || $ipv =~ /[*]/ and eval { do { CAN_DISABLE_V6ONLY() } }
233 46 0 0 @rows > 1 and $rows[0][1] == 0
246 13 0 6 $ipv =~ /4/ and not $info->{'host'} =~ /:/
272 106 0 0 @res < 1 and $err = "getaddrname: ${host}: FAILURE!"
280 62 0 44 keys %ipv6mapped and grep {$ipv6mapped{$_->[0]};} @info
283 0 0 43 $i6->[2] eq 6 and eval { do { CAN_DISABLE_V6ONLY() } }
327 1 12 12 @_ && $_[0] eq __PACKAGE__
330 7 2 4 $server->{'server'} && $server->{'server'}{'ipv6_package'}
12 9 4 not $Net::Server::IP::ipv6_package and my $pkg = $server->{'server'} && $server->{'server'}{'ipv6_package'}
344 0 0 0 not eval { do { $IPV6_V6ONLY = do "$d.pl" } } and $IPV6_V6ONLY = do { mkdir $d; `h2ph -d $d -a netinet/in.h 2>/dev/null`; eval `echo "package _h2ph_shush_ipv6only;";grep -rl "sub IPV6_V6ONLY" $d|xargs cat|grep "sub IPV6_V6ONLY";echo "IPV6_V6ONLY()"` }

or 2 conditions

line l !l condition
108 0 75 $have6 ||= 0
127 211 0 $flags ||= 0
0 211 $xflags ||= 0
131 0 0 $res[0] ||= "EAI_NONAME"
132 0 0 $res[0] ||= ""
146 62 44 $host ||= ""
45 61 $port ||= 0
147 106 0 $hints ||= {}
150 0 0 $res[0] || 'EAI_NONAME'
159 0 0 $res[0] ||= "EAI_NONAME"
194 130 0 $info->{'port'} ||= 0
209 48 77 $proto || 'tcp'
222 28 40 $info->{'ipv'} || $ipv || $ENV{'IPV'} || ''
328 12 13 shift() || {}

or 3 conditions

line l !l&&r !l&&!r condition
52 0 0 0 $have6 || !defined($have6) && eval { do { ($have6 = 0) = require Socket6 } }
0 0 0 grep {$_ eq $func;} @Socket::EXPORT, @Socket::EXPORT_OK or $have6 || !defined($have6) && eval { do { ($have6 = 0) = require Socket6 } } and grep {$_ eq $func;} @Socket6::EXPORT, @Socket6::EXPORT_OK
106 780 0 0 'Socket'->can($basename) || eval { do { &{"Socket ::$basename";}; 0 } } || 'Socket'->can($basename)
108 0 0 0 'Socket6'->can($basename) || eval { do { &{"Socket6::$basename";}; 0 } } || 'Socket6'->can($basename)
0 0 0 $sub->{$fullname} ||= 'Socket6'->can($basename) || eval { do { &{"Socket6::$basename";}; 0 } } || 'Socket6'->can($basename)
0 0 75 ($have6 ||= 0) ||= do { require Socket6; 1 }
0 0 780 $have6 or not defined $have6 and eval { do { ($have6 ||= 0) ||= do { require Socket6; 1 } } }
127 211 0 0 $sockaddr ||= sockaddr_in(0, inet_aton("0.0.0.0"))
149 0 0 106 "HASH" ne ref $hints or @_ < 2
0 0 106 "HASH" ne ref $hints or @_ < 2 or @_ > 3
151 0 0 0 $@ || "getaddrinfo: failed $!"
106 0 0 eval { do { @res = getaddrinfo($host, $port, $hints); die $res[0] || 'EAI_NONAME' if @res < 2; 1 } } or eval { do { @res = ""; my(@results) = getaddrinfo($host, $port, map({0 unless $hints->{$_};} "family", "socktype", "protocol", "flags")); while (@results > 4) { my $r = {}; (@$r{"family", "socktype", "protocol", "addr", "canonname"}, @results) = @results; push @res, $r; } ; $res[0] ||= "EAI_NONAME" if @res < 2; 1 } }
171 0 0 0 $!{'EINVAL'} or $!{'EOPNOTSUPP'}
189 34 0 84 $port =~ s( (?<=[\w*\]]) [,|\s:/]+ (tcp|udp|ssl|ssleay|unix|unixdgram|\w+(?: ::\w+)+) $ )[]xi or $port =~ s[ / (\w+) $ ][]x
197 3 127 0 $info->{'host'} ||= defined $host && length $host ? $host : "*"
209 5 125 0 $info->{'proto'} ||= $proto || 'tcp'
226 40 6 76 !$ipv || $ipv =~ /[*]/
19 0 57 $ipv =~ /6/ or $info->{'host'} =~ /:/
228 0 0 0 $@ || "Could not find valid addresses for [$info->{'host'}]:$info->{'port'} with ipv set to '*'"
241 44 0 2 $_info->{'host'} ne $info->{'host'} or $_info->{'port'} ne $info->{'port'}
262 0 0 0 $port = (getservbyname $port, $proto)[2] or croak("Could not determine port number from host [$host]:$_[1]")
272 0 0 106 $err or @res < 1 and $err = "getaddrname: ${host}: FAILURE!"
275 0 0 211 $err or not $ip
329 25 0 0 eval { do { require Net::Server::IP; 1 } } or not warn("ipv6_package: Failure! [$!] [$@]")
341 1 0 0 $IPV6_V6ONLY ||= $^O eq "linux" ? 26 : ($^O =~ /^(?:darwin|freebsd|openbsd|netbsd|dragonfly|MSWin32|solaris|svr4)$/ ? 27 : undef)