| line |
true |
false |
branch |
|
34
|
0 |
15 |
unless my $from_dom = $self->get_from_dom |
|
36
|
1 |
14 |
unless $self->exists_in_dns |
|
38
|
1 |
13 |
unless $policy |
|
48
|
0 |
13 |
if ($self->config->{'report_store'}{'auto_save'}) |
|
52
|
5 |
8 |
if $aligned |
|
54
|
0 |
8 |
$self->is_subdomain && defined $policy->sp ? : |
|
62
|
1 |
7 |
if (lc $effective_p eq "none") |
|
66
|
0 |
7 |
if $self->is_whitelisted |
|
71
|
6 |
1 |
unless (defined $policy->pct) |
|
78
|
0 |
1 |
if (int rand 100 < $policy->pct) |
|
88
|
1 |
0 |
$effective_p eq 'reject' ? : |
|
98
|
5 |
0 |
if ($pol and $self->has_valid_reporting_uri($pol->rua)) |
|
102
|
0 |
5 |
$_->{'max_bytes'} > 0 ? : |
|
115
|
0 |
11 |
unless my $from_dom = shift() || $self->header_from |
|
116
|
0 |
11 |
if $self->verbose |
|
121
|
1 |
10 |
if (0 == scalar @$matches) |
|
129
|
0 |
10 |
if (scalar @$matches > 1) |
|
131
|
0 |
0 |
if $self->verbose |
|
136
|
0 |
10 |
unless ($at_dom) |
|
138
|
0 |
10 |
unless eval {
do {
$policy = $self->policy($policy_str)
}
} |
|
139
|
0 |
10 |
if ($@) |
|
147
|
0 |
10 |
if (not $policy->p && $policy->is_valid_p($policy->p) or defined $policy->sp and not $policy->is_valid_p($policy->sp)) |
|
157
|
0 |
0 |
unless ($policy->rua and $self->has_valid_reporting_uri($policy->rua)) |
|
182
|
8 |
13 |
if ("pass" eq $self->result->spf or "pass" eq $self->result->dkim) |
|
196
|
7 |
17 |
unless $self->get_dkim_pass_sigs |
|
202
|
0 |
17 |
unless my $from_dom = $self->header_from |
|
203
|
0 |
17 |
unless my $policy = $self->policy |
|
216
|
4 |
15 |
if ($dkim_dom eq $from_dom) |
|
224
|
8 |
7 |
if $policy->adkim and "s" eq lc $policy->adkim |
|
227
|
0 |
7 |
if "pass" eq $self->result->dkim |
|
231
|
2 |
5 |
if ($dkim_org eq $from_org) |
|
237
|
6 |
11 |
if "pass" eq lc $self->result->dkim |
|
245
|
0 |
21 |
unless ($spf_dom or $self->spf) |
|
246
|
21 |
0 |
unless ($spf_dom) |
|
247
|
29 |
0 |
if $_->{'result'} |
|
248
|
0 |
21 |
if (scalar @passes == 0) |
|
252
|
24 |
0 |
if $_->{'scope'} |
|
253
|
0 |
21 |
unless ($ref) |
|
254
|
0 |
0 |
if $_->{'scope'} |
|
256
|
0 |
21 |
unless ($ref) |
|
265
|
0 |
21 |
unless $spf_dom |
|
267
|
0 |
21 |
unless my $from_dom = $self->header_from |
|
269
|
5 |
16 |
if ($spf_dom eq $from_dom) |
|
276
|
8 |
8 |
if ($self->policy->aspf and "s" eq lc $self->policy->aspf) |
|
280
|
3 |
5 |
if ($self->get_organizational_domain($spf_dom) eq $self->get_organizational_domain($from_dom)) |
|
293
|
3 |
8 |
unless defined $s_ip |
|
294
|
5 |
3 |
unless ($self->{'_whitelist'}) |
|
295
|
0 |
5 |
unless my $white_file = $self->config->{'smtp'}{'whitelist'} |
|
296
|
0 |
5 |
unless -f $white_file and -r $white_file |
|
298
|
20 |
10 |
if $line =~ /^#/ |
|
303
|
6 |
2 |
unless $self->{'_whitelist'}{$s_ip} |
|
307
|
1 |
1 |
$comment && $comment =~ /\S/ ? : |
|
322
|
0 |
18 |
unless $rua |
|
326
|
13 |
3 |
unless ($self->external_report($uri_ref->{'uri'})) |
|
331
|
2 |
1 |
if $ext |
|
339
|
0 |
41 |
unless my $dkim_sigs = $self->dkim |
|
341
|
0 |
41 |
if ("ARRAY" ne ref $dkim_sigs) |
|
350
|
0 |
108 |
unless my $from_dom = shift() || $self->header_from |
|
367
|
108 |
255 |
unless $labels[$i] |
|
370
|
110 |
145 |
if ($self->is_public_suffix($tld)) |
|
375
|
2 |
106 |
if ($greatest == scalar @labels) |
|
384
|
0 |
106 |
if $self->verbose |
|
390
|
0 |
18 |
unless my $from_dom = shift() || $self->header_from |
|
400
|
9 |
9 |
if ($from_dom ne $org_dom) |
|
406
|
5 |
22 |
if $matched |
|
407
|
10 |
12 |
if $self->has_dns_rr("MX", $_) |
|
408
|
10 |
12 |
if $self->has_dns_rr("NS", $_) |
|
409
|
6 |
6 |
if $self->has_dns_rr("A", $_) |
|
410
|
1 |
11 |
if $self->has_dns_rr("AAAA", $_) |
|
412
|
2 |
16 |
unless ($matched) |
|
429
|
11 |
4 |
defined $org_dom ? : |
|
431
|
0 |
15 |
unless my $query = $self->get_resolver->send("_dmarc.$zone", "TXT") |
|
434
|
1 |
11 |
if $rr->type ne "TXT" |
|
438
|
0 |
11 |
if "v=dmarc1" ne lc substr($rr->txtdata, 0, 8) |
|
439
|
0 |
11 |
if $self->verbose |
|
442
|
11 |
4 |
if (scalar @matches) |
|
451
|
2 |
2 |
if (defined $org_dom) |
|
452
|
1 |
1 |
if ($org_dom ne $zone) |
|
462
|
15 |
10 |
if $self->header_from |
|
464
|
0 |
10 |
unless (my $header = $self->header_from_raw) |
|
480
|
0 |
10 |
unless ($from_dom) |
|
492
|
0 |
20 |
unless my $dmarc_dom = $self->result->published->domain |
|
495
|
17 |
3 |
if ("mailto" eq $uri->scheme) |
|
498
|
13 |
4 |
if ($self->get_organizational_domain($dest_host) eq $self->get_organizational_domain($dmarc_dom)) |
|
502
|
0 |
13 |
if $self->verbose |
|
505
|
0 |
4 |
if $self->verbose |
|
508
|
3 |
4 |
if ("http" eq $uri->scheme) |
|
509
|
2 |
1 |
if ($uri->host eq $dmarc_dom) |
|
510
|
0 |
2 |
if $self->verbose |
|
513
|
0 |
1 |
if $self->verbose |
|
521
|
0 |
6 |
unless my $uri_ref = shift() |
|
525
|
0 |
6 |
unless my $dmarc_dom = $self->result->published->domain |
|
528
|
0 |
6 |
unless my $dest_email = $uri_ref->{'uri'}->path |
|
537
|
0 |
6 |
unless (my $query = $self->get_resolver->send($dest, "TXT")) |
|
538
|
0 |
0 |
if $self->verbose |
|
546
|
0 |
5 |
if $rr->type ne "TXT" |
|
548
|
0 |
5 |
if "v=dmarc1" ne lc substr($rr->txtdata, 0, 8) |
|
552
|
5 |
0 |
$policy ? : |
|
556
|
1 |
5 |
unless (scalar @matches) |
|
557
|
0 |
1 |
if $self->verbose |
|
564
|
5 |
0 |
if ref $_ |
|
566
|
0 |
3 |
unless my $recips_ref = $self->report->uri->parse($or->{'rua'}) |
|
567
|
3 |
0 |
if ((split(/@/, $recips_ref->[0]{'uri'}, 0))[-1] eq (split(/@/, $uri_ref->{'uri'}, 0))[-1]) |
|
571
|
0 |
3 |
if $self->verbose |