Branch Coverage

lib/Haineko/Sendmail.pm
Criterion Covered Total %
branch 53 190 27.8


line true false branch
63 1 11 if ($httpd->debug == 0 and $httpd->req->method eq 'GET')
99 11 0 unless $ip4network->list
103 0 11 if $remoteuser
105 11 0 unless ($$relayhosts{'open-relay'})
108 0 11 unless ($ip4network->find($remoteaddr))
127 0 0 unless $e->conn($mfresponse, $remotehost, $remoteaddr)
129 11 0 unless defined $mfresponse
130 0 0 unless $mfresponse->error
160 8 6 unless ref $$json{'header'} eq 'HASH'
161 4 2 unless defined $$json{'header'}{$e}
164 2 0 unless utf8::is_utf8($$head{$e})
169 10 0 unless utf8::is_utf8($body)
176 0 1 if $httpd->debug
180 1 10 if $exceptions
191 10 0 if (ref $v eq 'ARRAY') { }
193 0 10 if (scalar @$v) { }
196 0 0 if (grep {$$serverconf{'servername'} eq $_;} @$v)
227 1 9 if (not length $ehlo) { }
1 8 elsif (not 'Haineko::SMTPD::RFC5321'->check_ehlo($ehlo)) { }
252 0 0 unless $e->ehlo($mfresponse, $remotehost, $remoteaddr)
255 0 8 if (defined $mfresponse and $mfresponse->error)
276 1 7 if (not length $mail) { }
1 6 elsif (not 'Haineko::SMTPD::RFC5322'->is_emailaddress($mail)) { }
0 6 elsif ('Haineko::SMTPD::RFC5321'->is8bit(\$mail)) { }
309 0 0 unless $e->mail($mfresponse, $mail)
312 0 6 if (defined $mfresponse and $mfresponse->error)
336 1 5 unless (scalar @$recipients)
345 5 0 if (&Scalar::Util::looks_like_number($xrecipient)) { }
347 5 0 if ($xrecipient and $xrecipient > 0)
349 1 4 if (scalar @$recipients > $xrecipient)
376 2 2 if ('Haineko::SMTPD::RFC5322'->is_emailaddress($e)) { }
379 2 0 unless 'Haineko::SMTPD::RFC5321'->is8bit(\$e)
407 4 0 unless (defined $accessconf)
418 4 0 if (ref $accessconf eq 'HASH')
433 4 0 unless ($$accessconf{'open-relay'})
441 0 4 if grep {$e eq $_;} @$r
446 2 2 if grep {$x eq $_;} @$d
473 0 0 if $e->rcpt($mfresponse, $r)
474 0 0 if (defined $mfresponse and $mfresponse->error)
490 2 2 if (scalar @$cannotsend)
497 2 0 if grep {$e eq $_;} @$cannotsend
501 0 2 if (scalar @$v) { }
524 1 1 if (not length $body) { }
536 1 0 if (&Scalar::Util::looks_like_number($xmesgsize)) { }
538 0 1 if ($xmesgsize > 0 and length $body > $xmesgsize)
560 1 0 unless (length $$head{'subject'})
615 0 0 'Haineko::SMTPD::RFC5321'->is8bit(\$body) ? :
619 0 0 if (grep {$thisencode eq $_;} @$encodelist) { }
621 0 0 if ($ctencoding eq '8bit')
625 0 0 if ($thisencode eq 'ISO-2022-JP')
642 0 0 unless grep {$e eq $_;} @$headerlist
643 0 0 unless defined $$head{$e}
647 0 0 if $headername eq 'Replyto'
649 0 0 if ('Haineko::SMTPD::RFC5321'->is8bit(\$fieldvalue))
655 0 0 if (exists $$mailheader{$headername}) { }
658 0 0 if (ref $$mailheader{$headername} eq 'ARRAY') { }
678 0 0 if $fromheader eq $envelopemf
689 0 0 unless $e->head($mfresponse, $mailheader)
692 0 0 if (defined $mfresponse and $mfresponse->error)
710 0 0 unless $e->body($mfresponse, \$body)
713 0 0 if (defined $mfresponse and $mfresponse->error)
751 0 0 if $e eq 'rcpt'
755 0 0 unless exists $$mailerconf{'mail'}{$submission->addresser->host}
756 0 0 if $$mailerconf{'mail'}{$submission->addresser->host}{'disabled'}
798 0 0 if ($maxworkers > 1)
802 0 0 if (&Scalar::Util::looks_like_number($xprocesses)) { }
805 0 0 if $maxworkers > $xprocesses
817 0 0 if $maxworkers > 1
820 0 0 if ($useprefork)
835 0 0 if ($procnumber < $maxworkers)
846 0 0 if $trappedsig >= $maxworkers
857 0 0 if ($useprefork) { }
863 0 0 if $thisworker >= $maxworkers
873 0 0 if grep {$e eq $_;} @$cannotsend
884 0 0 if $$relayingto{'disabled'}
886 0 0 unless keys %$relayingto
887 0 0 if $$relayingto{'disabled'}
893 0 0 if ($$relayingto{'auth'})
896 0 0 unless keys %$credential
898 0 0 if ($$relayingto{'mailer'} =~ /\A(?:ESMTP|Haineko|MX)\z/) { }
0 0 elsif ($$relayingto{'mailer'} =~ /(?:Discard|Screen)/) { }
0 0 elsif ($$relayingto{'mailer'} =~ m[\A/] or $$relayingto{'mailer'} eq 'File') { }
917 0 0 if ($$relayingto{'mailer'} eq 'ESMTP') { }
0 0 elsif ($$relayingto{'mailer'} eq 'Haineko') { }
0 0 elsif ($$relayingto{'mailer'} eq 'MX') { }
936 0 0 if ($$relayingto{'auth'})
967 0 0 $$relayingto{'mailer'} eq 'File' ? :
993 0 0 if (length $$relayingto{'mailer'}) { }
1001 0 0 if ($$relayingto{'auth'})
1010 0 0 if (not $smtpmailer->response->dsn)
1012 0 0 if ($smtpmailer->response->error) { }
1047 0 0 if ($maxworkers > 1) { }
1067 0 0 if ($useprefork) { }
1070 0 0 if $preforkset->signal_received eq 'TERM'
1071 0 0 if $preforkset->signal_received eq 'INT'