push @$sa_scores, { score => $score, rule => $rule, desc => $descr };
}
+ if (my $hit = $queue->{spam_custom}) {
+ my $score += $queue->{spam_custom};
+ my $descr = "Custom Check Script";
+ my $rule = 'CustomCheck';
+ $sa_score += $score;
+ $list .= $list ? ",$rule" : $rule;
+ $list .= $list ? ",$rule" : $rule;
+ $loglist .= $loglist ? ",$rule($score)" : "$rule($score)";
+ push @$sa_scores, { score => $score, rule => $rule, desc => $descr };
+ }
+
my ($csec, $usec) = gettimeofday ();
my $spamtest = $queue->{sa};
$vars->{__spaminfo} = $spaminfo;
if ($opt_testmode) {
- if ($queue->{vinfo_clam} || $queue->{vinfo_avast}) {
+ if ($queue->{vinfo_clam} || $queue->{vinfo_avast} || $queue->{vinfo_custom}) {
$vars->{'VIRUS_INFO'} = "Virus Info:";
$vars->{'VIRUS_INFO'} .= " clam: $queue->{vinfo_clam}" if $queue->{vinfo_clam};
$vars->{'VIRUS_INFO'} .= " avast: $queue->{vinfo_avast}" if $queue->{vinfo_avast};
+ $vars->{'VIRUS_INFO'} .= " custom: $queue->{vinfo_custom}" if $queue->{vinfo_custom};
} else {
$vars->{'VIRUS_INFO'} = '';
}
# (SPAM analyzer is run on demand later)
# on error: log error messages
-
- # test for virus first
- my $vinfo = PMG::Utils::analyze_virus(
+ # run custom script first
+ my ($vinfo, $custom_spaminfo) = PMG::Utils::analyze_custom_check(
$queue, $queue->{dataname}, $pmg_cfg, $opt_testmode);
- if ($vinfo && $vinfo =~ m/^Heuristics\.(.+)$/) {
- my $hit = $1;
- $queue->{clamav_heuristic} = $hit;
- $vinfo = undef;
- }
+ # test for virus if none found
+ if (!defined($vinfo)) {
+ $vinfo = PMG::Utils::analyze_virus(
+ $queue, $queue->{dataname}, $pmg_cfg, $opt_testmode);
+ if ($vinfo && $vinfo =~ m/^Heuristics\.(.+)$/) {
+ my $hit = $1;
+ $queue->{clamav_heuristic} = $hit;
+ $vinfo = undef;
+ }
+ }
$queue->{vinfo} = $vinfo;
# always add this headers to incoming mails
my $ptspam = ($queue->{ptime_spam} || 0)/1000;
my $ptclam = ($queue->{ptime_clam} || 0)/1000;
+ my $ptcustom = ($queue->{ptime_custom} || 0)/1000;
- $self->log(3, "$queue->{logid}: processing time: ${time_total} seconds ($ptspam, $ptclam)");
+ $self->log(3, "$queue->{logid}: processing time: ${time_total} seconds ($ptspam, $ptclam, $ptcustom)");
$msginfo->{test_fh}->close if $opt_testmode;