Branch Coverage

blib/lib/Net/SIP/StatelessProxy.pm
Criterion Covered Total %
branch 29 176 16.4


line true false branch
67 0 7 if ($force_rewrite or $contact =~ /\@/)
76 0 7 if ($contact =~ /^b([A-Z2-7]+)$/)
78 0 0 unless (my $old = &$crypt(_decode_base32($1), -1, $legdict))
84 0 0 if ($ileg_in ne $iold_out)
86 0 0 if ($leg_in->{'contact'} ne $old_out->{'contact'} and not sip_uri_eq($leg_in->{'contact'}, $old_out->{'contact'}))
94 0 0 if (ref $leg_out eq 'SCALAR') { }
0 0 elsif ($leg_out) { }
96 0 0 unless (($$leg_out) = $disp->i2legs($iold_in))
102 0 0 if ($ileg_out ne $iold_in)
104 0 0 if ($leg_out->{'contact'} ne $old_in->{'contact'} and not sip_uri_eq($leg_out->{'contact'}, $old_in->{'contact'}))
134 0 0 unless defined $add2mac
136 0 0 unless (@k)
142 0 0 if ($dir > 0) { }
147 0 0 unless substr(md5($in . $add2mac . $mackey), 0, 4) eq $cksum
167 0 0 if ($dir > 0) { }
213 0 7 if (my $err = $incoming_leg->forward_incoming($packet))
233 0 7 if ($packet->is_response) { }
235 0 0 if (my($via) = $packet->get_header('via'))
238 0 0 if ($branch)
243 0 0 if (@legs)
249 0 0 if (not $$vref)
269 0 7 if $to =~ /<(\w+:\S+)>/
270 7 0 if (my($pre, $name) = $to =~ /^(sips?:)(\S+)?\@/)
272 0 7 if (my $back = invoke_callback($rewrite_contact, $name, $incoming_leg, \$outgoing_leg))
277 0 0 if $outgoing_leg
298 0 0 unless (my($via) = $packet->get_header('via'))
307 0 0 $proto eq 'tls' ? :
308 0 0 if (my $alt_addr = $param->{'received'} || $param->{'maddr'})
310 0 0 if ($alt_fam) { }
317 0 0 if $param->{'rport'}
325 0 0 if ($addr)
327 0 0 if $Net::SIP::StatelessProxy::DEBUG
349 0 0 if (@_)
351 0 0 if $Net::SIP::StatelessProxy::DEBUG
369 6 1 unless (@route)
376 0 1 if ($ol and @$ol) { }
377 0 0 if (sip_uri_eq($route, $ol->[0]{'contact'})) { }
386 1 0 $param->{'maddr'} ? :
387 0 0 $proto eq 'tls' ? :
390 1 0 if (not @legs and $param->{'maddr'})
396 0 1 if (@legs) { }
404 1 0 if (@route)
425 0 7 if @{$entry->{'dst_addr'};}
446 0 7 if (@_)
452 0 7 unless (@$dst_addr)
458 0 13 unless ref $_
459 0 13 unless $_->{'addr'}
461 0 7 if (%hostnames) { }
481 0 0 if ($ip) { }
491 0 0 unless @$dst_addr
511 0 7 if (!@$legs == @$dst_addr)
518 0 0 unless ($leg)
526 0 0 unless (@$legs)
533 6 1 if (@$legs > 1)
534 0 6 if ($incoming_leg->{'proto'} eq 'tcp')
537 0 0 if @tcp_legs
547 0 7 if ($outgoing_leg != $incoming_leg || $self->{'force_rewrite'} and my(@contact) = $packet->get_header('contact'))
555 0 0 $data =~ /^(sips?:)([^>\s]+)$/i ? :
0 0 $data =~ /^(.*\s]+)(>.*)/i ? :
561 0 0 if ($addr =~ /^(\w+)(\@.*)/ and my $newaddr = invoke_callback($rewrite_contact, $1, $incoming_leg, $outgoing_leg)) { }
580 6 1 if ($outgoing_leg != $incoming_leg and $packet->is_request)
585 0 7 if (my $err = $outgoing_leg->forward_outgoing($packet, $incoming_leg))
587 0 0 defined $code ? :
591 0 7 if (my $err = $self->do_nat($packet, $incoming_leg, $outgoing_leg))
627 0 0 if ($incoming_leg == $outgoing_leg)
633 0 0 if $packet->cseq =~ /\b(?:INVITE|ACK)\b/
635 0 0 if ($@)
640 0 0 $packet->is_request ? :
644 0 0 $request ? :
646 0 0 if ($response and $response->method eq 'INVITE')
648 0 0 if $code >= 400
653 0 0 unless ($body or $method eq 'ACK' or $method eq 'CANCEL' or $method eq 'BYE')
658 0 0 unless $track_resp_code
670 0 0 if (my $v = $packet->get_header($k)) { }
688 0 0 if ($request) { }
698 0 0 unless my($cseq) = $packet->get_header('cseq') =~ /^(\d+)/
702 0 0 if ($track_resp_code)
704 0 0 if (keys %$rc > 5000)
713 0 0 $request ? :
720 0 0 if ($method eq 'CANCEL') { }
0 0 elsif ($method eq 'BYE') { }
732 0 0 if ($body)
735 0 0 $request ? :
739 0 0 unless ($new_media)
753 0 0 if ($method eq 'ACK') { }
0 0 elsif (not $nathelper->activate_session($callid, $cseq, $idfrom, $idto)) { }
757 0 0 if ($code > 400) { }
0 0 elsif (not $nathelper->activate_session($callid, $cseq, $idfrom, $idto)) { }