line |
true |
false |
branch |
42
|
0 |
0 |
unless my $ref = $m{$_[$i]} |
71
|
38 |
103 |
if ($proto eq 'tls') { } |
95
|
0 |
0 |
$verify_client == 1 ? : |
|
0 |
0 |
$verify_client == -1 ? : |
|
38 |
0 |
!$verify_client ? : |
105
|
38 |
0 |
if ($SSL_REUSE_CTX) |
107
|
0 |
76 |
if $self->{'tls'}{$_}{'SSL_reuse_ctx'} |
119
|
141 |
0 |
unless ($connected) |
123
|
0 |
141 |
$peer ? : |
134
|
0 |
134 |
if ($self->{'loop'}) |
152
|
51 |
57 |
if ($self->{'loop'}) |
156
|
25 |
26 |
if ($self->{'timeout_timer'}) |
161
|
57 |
51 |
if ($self->{'loop'} = $loop) |
176
|
0 |
0 |
unless @fo |
177
|
0 |
0 |
if @fo > 1 |
192
|
0 |
188 |
if ($self->{'dst'}) { } |
|
0 |
188 |
elsif (not ref $dst) { } |
203
|
67 |
121 |
if (@$fos > 1) |
206
|
37 |
30 |
if ($packet->is_response and my $fo = $self->{'tids'}{$packet->tid}) |
207
|
37 |
0 |
if (my(@s) = grep({$_ == $fo;} @$fos)) |
212
|
30 |
37 |
if (@$fos > 1) |
214
|
30 |
0 |
if (my(@s) = grep({$_->{'peer'}{'port'} == $dst->{'port'} if $_->{'peer'} and $_->{'peer'}{'addr'} eq $dst->{'addr'};} @$fos)) |
218
|
30 |
30 |
if $_->{'peer'} and $_->{'peer'}{'addr'} eq $dst->{'addr'} |
223
|
0 |
67 |
unless ($match) |
231
|
106 |
82 |
if ($self->{'ipproto'} eq 'udp') |
232
|
0 |
106 |
if ($fo->{'peer'}) { } |
235
|
0 |
0 |
unless defined $rv |
240
|
0 |
106 |
unless defined $rv |
245
|
82 |
0 |
if ($self->{'ipproto'} eq 'tcp') |
246
|
67 |
15 |
if ($fo->{'peer'}) |
249
|
0 |
67 |
if $Net::SIP::SocketPool::DEBUG |
252
|
67 |
0 |
unless $fo->{'inside_connect'} |
257
|
0 |
15 |
if $Net::SIP::SocketPool::DEBUG |
286
|
5 |
161 |
if $self->{'loop'} and not $fo->{'inside_connect'} |
287
|
25 |
141 |
if not $self->{'timeout_timer'} and $fo->{'didit'} |
294
|
0 |
2 |
if @_ |
295
|
2 |
0 |
if $self->{'loop'} |
297
|
2 |
0 |
if ($fo->{'tids'}) |
306
|
0 |
30 |
if keys %$fds <= 1 |
307
|
0 |
30 |
unless $self->{'loop'} |
316
|
0 |
30 |
if ($tdiff > $expire) { } |
|
0 |
30 |
elsif ($_->{'inside_connect'} and $tdiff > $CONNECT_TIMEOUT) { } |
324
|
30 |
0 |
if ($need_timer) |
325
|
5 |
25 |
if $self->{'timeout_timer'} |
344
|
0 |
0 |
if @_ |
377
|
25 |
57 |
$fo->{'peer'} ? : |
387
|
0 |
0 |
unless my $dst = $self->{'dst'} |
389
|
0 |
0 |
if ($ip ne $dst->{'addr'} or $port ne $dst->{'port'}) |
390
|
0 |
0 |
if $Net::SIP::SocketPool::DEBUG |
403
|
0 |
118 |
unless my $fo = $self->{'fds'}{fileno $fd} |
404
|
0 |
118 |
unless my $from = recv($fd, my $buf, 65536, 0) |
408
|
0 |
118 |
if (length $buf < 13) |
414
|
0 |
118 |
if shift() and not _check_from($self, $from) |
416
|
0 |
118 |
unless my $pkt = eval {
do {
'Net::SIP::Packet'->new_from_string($buf)
}
} |
436
|
0 |
10 |
unless my $srvfo = $self->{'fds'}{fileno $srvfd} |
437
|
0 |
10 |
unless my $from = accept(my $clfd, $srvfd) |
438
|
0 |
10 |
if $self->{'dst'} and not _check_from($self, $from) |
447
|
5 |
5 |
if $self->{'tls'} |
457
|
0 |
88 |
unless my $fo = $self->{'fds'}{fileno $fd} |
460
|
0 |
88 |
if $Net::SIP::SocketPool::DEBUG and $fo->{'rbuf'} ne '' |
467
|
34 |
54 |
$self->{'tls'} ? : |
468
|
0 |
88 |
unless (defined $n) |
469
|
0 |
0 |
if $!{'EINTR'} |
470
|
0 |
0 |
if $!{'EAGAIN'} or $!{'EWOULDBLOCK'} |
475
|
2 |
86 |
unless ($n) |
482
|
0 |
86 |
if ($fo->{'rbuf'} =~ s/\A((?:\r\n)+)//) |
483
|
0 |
0 |
if $Net::SIP::SocketPool::DEBUG |
488
|
0 |
86 |
if ($hdrpos < 0 and length $fo->{'rbuf'} > $MAX_SIP_HEADER or $hdrpos > $MAX_SIP_HEADER) |
494
|
0 |
86 |
if ($hdrpos < 0) |
495
|
0 |
0 |
if $Net::SIP::SocketPool::DEBUG |
501
|
0 |
86 |
unless (%clen) |
506
|
0 |
86 |
if (keys %clen > 1) |
512
|
0 |
86 |
if ($clen > $MAX_SIP_BODY) |
517
|
0 |
86 |
if ($hdrpos + $clen > length $fo->{'rbuf'}) |
519
|
0 |
0 |
if $Net::SIP::SocketPool::DEBUG |
523
|
0 |
86 |
unless my $pkt = eval {
do {
'Net::SIP::Packet'->new_from_string(substr($fo->{'rbuf'}, 0, $hdrpos + $clen, ''))
}
} |
529
|
30 |
56 |
if ($pkt->is_request) |
540
|
86 |
0 |
if $self->{'loop'} |
543
|
33 |
53 |
$self->{'tls'} ? : |
548
|
0 |
86 |
if $fo->{'rbuf'} ne '' |
559
|
0 |
15 |
if $Net::SIP::SocketPool::DEBUG |
560
|
0 |
15 |
if ($rv) |
562
|
0 |
0 |
if $self->{'tls'} |
566
|
0 |
15 |
if $!{'EINTR'} |
567
|
15 |
0 |
if ($!{'EALREADY'} or $!{'EINPROGRESS'}) |
569
|
0 |
15 |
if $Net::SIP::SocketPool::DEBUG |
582
|
15 |
0 |
if ($xxfd) |
586
|
15 |
0 |
$err ? : |
587
|
0 |
15 |
if ($err) |
598
|
5 |
10 |
if $self->{'tls'} |
605
|
10 |
0 |
if $fo->{'wbuf'} ne '' |
616
|
82 |
0 |
if (my $n = syswrite($fo->{'fd'}, $fo->{'wbuf'})) |
621
|
0 |
0 |
if $!{'EINTR'} |
622
|
0 |
0 |
if ($!{'EAGAIN'} or $!{'EWOULDBLOCK'}) |
623
|
0 |
0 |
if $xxfd |
638
|
0 |
82 |
if $Net::SIP::SocketPool::DEBUG |
639
|
0 |
82 |
if $xxfd |
648
|
5 |
10 |
unless ($xxfd) |
649
|
0 |
5 |
if $Net::SIP::SocketPool::DEBUG |
651
|
0 |
5 |
unless 'IO::Socket::SSL'->start_SSL($fo->{'fd'}, %{$$self{'tls'}{'m'};}, 'SSL_startHandshake', 0) |
656
|
5 |
10 |
if ($fo->{'fd'}->accept_SSL) |
657
|
0 |
5 |
if ($Net::SIP::SocketPool::DEBUG) |
659
|
0 |
0 |
$peer_cert ? : |
664
|
5 |
0 |
if $xxfd |
669
|
10 |
0 |
if ($SSL_ERROR == $SSL_WANT_READ) { } |
|
0 |
0 |
elsif ($SSL_ERROR == $SSL_WANT_WRITE) { } |
670
|
0 |
10 |
if $Net::SIP::SocketPool::DEBUG |
671
|
5 |
5 |
if $xxfd |
674
|
0 |
0 |
if $Net::SIP::SocketPool::DEBUG |
675
|
0 |
0 |
if $xxfd |
689
|
5 |
10 |
unless ($xxfd) |
690
|
0 |
5 |
if $Net::SIP::SocketPool::DEBUG |
694
|
0 |
5 |
unless 'IO::Socket::SSL'->start_SSL($fo->{'fd'}, 'SSL_verifycn_name', $fo->{'peer'}{'host'}, 'SSL_hostname', $fo->{'peer'}{'host'}, %{$$self{'tls'}{'c'};}, 'SSL_startHandshake', 0) |
699
|
5 |
10 |
if ($fo->{'fd'}->connect_SSL) |
701
|
0 |
5 |
if $Net::SIP::SocketPool::DEBUG |
703
|
5 |
0 |
if $xxfd |
705
|
5 |
0 |
if $fo->{'wbuf'} ne '' |
710
|
10 |
0 |
if ($SSL_ERROR == $SSL_WANT_READ) { } |
|
0 |
0 |
elsif ($SSL_ERROR == $SSL_WANT_WRITE) { } |
711
|
0 |
10 |
if $Net::SIP::SocketPool::DEBUG |
712
|
5 |
5 |
if $xxfd |
716
|
0 |
0 |
if $Net::SIP::SocketPool::DEBUG |
717
|
0 |
0 |
if $xxfd |
730
|
0 |
0 |
unless my $cert = shift() |