| line |
true |
false |
branch |
|
380
|
0 |
0 |
unless ref $_[0] eq 'HASH' |
|
385
|
0 |
0 |
unless make_pidfile($pidfile, $$) |
|
393
|
0 |
0 |
unless $me |
|
394
|
0 |
0 |
if $_[0] |
|
411
|
0 |
0 |
if ($pid) { } |
|
447
|
0 |
0 |
unless ($$c{'piddir'} and -d $$c{'piddir'} and -w $$c{'piddir'}) |
|
454
|
0 |
0 |
if grep(($_ eq '-d'), @ARGV) and @ARGV < 2 or @ARGV < 1 |
|
459
|
0 |
0 |
if ($_ eq 'start') { } |
|
|
0 |
0 |
elsif ($_ eq 'stop') { } |
|
|
0 |
0 |
elsif ($_ eq 'restart') { } |
|
|
0 |
0 |
elsif ($_ eq 'status') { } |
|
|
0 |
0 |
elsif ($_ eq '-d') { } |
|
473
|
0 |
0 |
if ($pid) { } |
|
496
|
0 |
4 |
if ($$c{'ip_address'}) { } |
|
497
|
0 |
0 |
unless $laddr = inet_aton($$c{'ip_address'}) |
|
503
|
0 |
4 |
if ($port = $$c{'port'}) { } |
|
504
|
0 |
0 |
unless vld_num($port) |
|
510
|
0 |
4 |
if ($delay = $$c{'delay'}) { } |
|
511
|
0 |
0 |
unless vld_num($delay) |
|
517
|
0 |
4 |
if ($deny = $$c{'deny'}) { } |
|
519
|
0 |
0 |
unless $deny =~ /^(?:CONN|EHLO|HELO|MAIL|RCPT|DATA)$/ |
|
521
|
0 |
0 |
if $deny =~ /HELO|EHLO/ |
|
528
|
0 |
4 |
if ($log_facility = $$c{'log_facility'}) { } |
|
530
|
0 |
0 |
unless $log_facility =~ /^(?:LOG_KERN|LOG_USER|LOG_MAIL|LOG_DAEMON|LOG_AUTH|LOG_SYSLOG|LOG_LPR|LOG_NEWS|LOG_UUCP|LOG_CRON|LOG_AUTHPRIV|LOG_FTP|LOG_LOCAL0|LOG_LOCAL1|LOG_LOCAL2|LOG_LOCAL3|LOG_LOCAL4|LOG_LOCAL5|LOG_LOCAL6|LOG_LOCAL7)$/ |
|
535
|
0 |
4 |
if ($syslog = $$c{'syslog'}) |
|
537
|
0 |
0 |
unless $syslog =~ /^(?:STDERR|LOG_EMERG|LOG_ALERT|LOG_CRIT|LOG_ERR|LOG_WARNING|LOG_NOTICE|LOG_INFO|LOG_DEBUG)$/ |
|
541
|
0 |
4 |
if ($verbose = $$c{'verbose'}) { } |
|
542
|
0 |
0 |
unless vld_num($verbose) and $verbose > 0 |
|
545
|
0 |
0 |
if ($verbose > 3) |
|
557
|
0 |
4 |
if ($_ = $$c{'dnshost'}) { } |
|
558
|
0 |
0 |
unless $dnshost = inet_aton($_) |
|
564
|
0 |
4 |
if ($dnsport = $$c{'dnsport'}) { } |
|
565
|
0 |
0 |
unless vld_num($dnsport) |
|
570
|
4 |
0 |
if ($dnshost) |
|
574
|
0 |
4 |
if ($DNStimeout = $$c{'DNStimeout'}) { } |
|
575
|
0 |
0 |
unless vld_num($DNStimeout) and $DNStimeout >= $delay |
|
581
|
0 |
4 |
if ($maxthreads = $$c{'maxthreads'}) { } |
|
582
|
0 |
0 |
unless vld_num($maxthreads) |
|
588
|
0 |
4 |
if ($maxcmds = $$c{'maxcmds'}) { } |
|
589
|
0 |
0 |
unless vld_num($maxcmds) |
|
595
|
0 |
4 |
if ($disconnect = $$c{'disconnect'}) { } |
|
596
|
0 |
0 |
unless vld_num($disconnect) |
|
605
|
0 |
0 |
if ($pid) |
|
611
|
0 |
0 |
unless open STDIN, '/dev/null' |
|
612
|
0 |
0 |
unless open STDOUT, '>/dev/null' |
|
614
|
0 |
0 |
if $pid = fork |
|
618
|
3 |
1 |
wantarray ? : |
|
624
|
0 |
0 |
unless $dns = open_udpNB() |
|
657
|
0 |
0 |
unless ($syslog and $syslog eq 'STDERR') |
|
658
|
0 |
0 |
unless open STDERR, '>/dev/null' |
|
671
|
0 |
0 |
unless $sock |
|
685
|
0 |
0 |
if $$threads{$_}{'read'} |
|
686
|
0 |
0 |
if $$threads{$_}{'write'} |
|
691
|
0 |
0 |
if ($nfound > 0) { } |
|
|
0 |
0 |
elsif ($delta = ($_ = time) - $then) { } |
|
692
|
0 |
0 |
if $wout |
|
693
|
0 |
0 |
if $rout |
|
699
|
0 |
0 |
unless exists $$threads{$_} |
|
701
|
0 |
0 |
if ($$tptr{'alarm'} and $$tptr{'alarm'} + $delay < $then) |
|
705
|
0 |
0 |
if ($$tptr{'tout'}) { } |
|
712
|
0 |
0 |
if ($verbose > 3) { } |
|
|
0 |
0 |
elsif ($verbose > 2) { } |
|
713
|
0 |
0 |
&who . "delay ended for '${_}' $logtxt => " . exists($subref{$go}) ? : |
|
721
|
0 |
0 |
if (exists $$threads{$_} and not $$threads{$_}{'tout'}) |
|
728
|
0 |
0 |
if ($$dns{$_}{'alarm'} and $$dns{$_}{'alarm'} + $delay < $then) |
|
730
|
0 |
0 |
unless $verbose < 3 |
|
750
|
0 |
10 |
unless $verbose < 3 |
|
752
|
5 |
5 |
if ($sort) { } |
|
758
|
5 |
33 |
unless exists $$threads{$_} and $$threads{$_} |
|
759
|
16 |
17 |
unless vec $vec, $_, 1 |
|
760
|
12 |
5 |
unless $$threads{$_}{$op} |
|
763
|
0 |
5 |
unless ref $go |
|
765
|
0 |
5 |
if ($verbose > 3) { } |
|
|
0 |
5 |
elsif ($verbose > 2) { } |
|
766
|
0 |
0 |
exists $subref{$go} ? : |
|
770
|
0 |
0 |
unless $verbose < 3 |
|
781
|
1 |
1 |
if fileno $$tptr{'sock'} |
|
787
|
1 |
1 |
if (defined $wrote) { } |
|
793
|
0 |
2 |
unless $verbose < 3 |
|
794
|
1 |
1 |
if (defined $wrote) { } |
|
|
1 |
0 |
elsif (sockerror($! || 9)) { } |
|
796
|
1 |
0 |
if ($$tptr{'woff'} == $bytes) |
|
798
|
0 |
1 |
unless ($verbose < 4) |
|
799
|
0 |
0 |
exists $subref{$go} ? : |
|
813
|
3 |
0 |
if fileno $$tptr{'sock'} |
|
818
|
0 |
0 |
defined $bytes ? : |
|
|
0 |
3 |
unless $verbose < 3 |
|
825
|
2 |
1 |
if (defined $bytes) { } |
|
|
0 |
1 |
elsif (sockerror($! || 9)) { } |
|
826
|
1 |
1 |
unless $bytes |
|
831
|
0 |
1 |
unless ($verbose < 4) |
|
832
|
0 |
0 |
exists $subref{$go} ? : |
|
849
|
2 |
1 |
$err ? : |
|
|
3 |
3 |
$err == 4 || $err == 11 ? : |
|
862
|
0 |
3 |
unless $verbose < 3 |
|
865
|
3 |
0 |
if $sock |
|
876
|
0 |
2 |
if (keys %$threads > $maxthreads) |
|
877
|
0 |
0 |
unless $verbose < 2 |
|
882
|
1 |
1 |
unless $sock |
|
884
|
0 |
1 |
unless ($ipaddr) |
|
908
|
0 |
1 |
if ($deny eq 'CONN') { } |
|
950
|
0 |
0 |
unless $verbose < 3 |
|
989
|
0 |
21 |
if ++$$tptr{'cmdcnt'} > $maxcmds |
|
992
|
18 |
3 |
if ($$tptr{'rargs'} =~ /^\s*([a-zA-Z]{4})\b/) |
|
998
|
3 |
18 |
if (not $newc) { } |
|
|
1 |
17 |
elsif (not exists $Commands{$newc}) { } |
|
|
1 |
16 |
elsif ($$tptr{'roff'} > 512) { } |
|
|
7 |
9 |
elsif ($lastc =~ /(?:CONN|HELO|EHLO)/) { } |
|
|
8 |
1 |
elsif ($lastc eq 'MAIL') { } |
|
|
1 |
0 |
elsif ($lastc eq 'RCPT') { } |
|
1009
|
2 |
5 |
if ($newc eq 'RCPT') { } |
|
|
2 |
3 |
elsif ($newc eq 'DATA') { } |
|
1017
|
1 |
7 |
if ($newc eq 'MAIL') { } |
|
|
1 |
6 |
elsif ($newc eq 'DATA') { } |
|
1025
|
0 |
1 |
if ($newc eq 'MAIL') |
|
1030
|
11 |
10 |
if ($$tptr{'wargs'}) { } |
|
|
1 |
9 |
elsif ($newc eq $deny) { } |
|
1031
|
0 |
11 |
unless $verbose < 2 |
|
1037
|
0 |
1 |
unless $verbose < 3 |
|
1039
|
0 |
9 |
unless $verbose < 3 |
|
1054
|
8 |
0 |
$string =~ /[^\s:]+/ ? : |
|
1057
|
0 |
8 |
unless $what eq $match and $string =~ /^:/ |
|
1061
|
3 |
5 |
if ($string =~ /([\w\.-]+)@([\w\-]+\.[\w\.-]+)/) |
|
1062
|
0 |
3 |
if length $1 > 64 |
|
1064
|
0 |
3 |
if length $2 > 255 |
|
1068
|
0 |
5 |
if $string =~ /^\s*?\s*$/ and $match =~ /to|vrfy/ |
|
1070
|
0 |
5 |
if $string =~ /^\s*<\s*>/ and $match =~ /from/ |
|
1076
|
0 |
5 |
if @_ > 1 |
|
1078
|
5 |
0 |
if $_[0] |
|
1096
|
2 |
3 |
$smtp_args =~ /[\w\.-]+/ ? : |
|
1101
|
2 |
3 |
if ($is_EHLO) { } |
|
1124
|
1 |
2 |
if (not defined $domain) { } |
|
1131
|
0 |
2 |
unless $verbose < 1 |
|
1148
|
2 |
3 |
if ($is_rcpt) { } |
|
1153
|
1 |
4 |
if (defined $domain) { } |
|
1154
|
1 |
0 |
$domain ? : |
|
1155
|
0 |
1 |
$is_rcpt ? : |
|
1157
|
0 |
1 |
$is_rcpt ? : |
|
1158
|
0 |
1 |
unless $verbose < 1 |
|
1242
|
0 |
2 |
unless $verbose < 2 |
|
1273
|
1 |
2 |
$proto eq 'ESMTP' ? : |
|
|
3 |
2 |
$domain ? : |
|
1288
|
0 |
0 |
if $immediate |
|
1314
|
0 |
0 |
if ($syslog and $syslog ne 'STDERR') |
|
1331
|
0 |
0 |
unless $syslog |
|
1334
|
0 |
0 |
if ($syslog eq 'STDERR') { } |
|
1353
|
0 |
0 |
if $syslog and $syslog ne 'STDERR' |
|
1359
|
14 |
30 |
if $seed |
|
1360
|
2 |
42 |
if ++$unique > 65535 |
|
1391
|
0 |
0 |
unless $dnsaddr and $DNSfileno |
|
1394
|
0 |
0 |
unless $verbose < 3 |
|
1407
|
0 |
0 |
unless $buffer |
|
1426
|
0 |
0 |
unless $sender |
|
1427
|
0 |
0 |
if length $msg < HFIXEDSZ() |
|
1432
|
0 |
0 |
unless $tc == 0 and $qr == 1 and $opcode == QUERY() and $rcode == NOERROR() || $rcode == NXDOMAIN() || $rcode == SERVFAIL() and $qdcount == 1 and exists $$dns{$id} |
|
1442
|
0 |
0 |
unless exists $$threads{$pfno} |
|
1443
|
0 |
0 |
unless length $msg > HFIXEDSZ() |
|
1448
|
0 |
0 |
if ($ancount and $rcode == &NOERROR and $lname eq $pname and $type == T_PTR() and $class == C_IN()) |
|
1456
|
0 |
0 |
if $t == T_PTR() |
|
1460
|
0 |
0 |
if ($name) { } |
|
1462
|
0 |
0 |
unless $verbose < 3 |
|
1465
|
0 |
0 |
unless $verbose < 3 |
|
1467
|
0 |
0 |
unless $$threads{$pfno}{'cok'} |