1 |
slords |
1.1 |
diff -Nur -x '*.orig' -x '*.rej' qpsmtpd-0.32/plugins/virus/clamav mezzanine_patched_qpsmtpd-0.32/plugins/virus/clamav |
2 |
|
|
--- qpsmtpd-0.32/plugins/virus/clamav 2007-04-09 11:25:42.000000000 -0600 |
3 |
|
|
+++ mezzanine_patched_qpsmtpd-0.32/plugins/virus/clamav 2007-04-09 11:25:09.000000000 -0600 |
4 |
|
|
@@ -129,6 +129,9 @@ |
5 |
|
|
elsif (/back_compat/) { |
6 |
|
|
$self->{_back_compat} = '-i --max-recursion=50'; |
7 |
|
|
} |
8 |
|
|
+ elsif (/declined_on_fail/) { |
9 |
|
|
+ $self->{_declined_on_fail} = 1; |
10 |
|
|
+ } |
11 |
|
|
else { |
12 |
|
|
$self->log(LOGERROR, "Unrecognized argument '$_' to clamav plugin"); |
13 |
|
|
return undef; |
14 |
|
|
@@ -138,6 +141,7 @@ |
15 |
|
|
$self->{_max_size} ||= 512 * 1024; |
16 |
|
|
$self->{_spool_dir} ||= $self->spool_dir(); |
17 |
|
|
$self->{_back_compat} ||= ''; # make sure something is set |
18 |
|
|
+ $self->{_declined_on_fail} ||= 0; # decline the message on clamdscan failure |
19 |
|
|
|
20 |
|
|
unless ($self->{_spool_dir}) { |
21 |
|
|
$self->log(LOGERROR, "No spool dir configuration found"); |
22 |
|
|
@@ -189,6 +193,7 @@ |
23 |
|
|
|
24 |
|
|
if ($signal) { |
25 |
|
|
$self->log(LOGINFO, "clamscan exited with signal: $signal"); |
26 |
|
|
+ return (DENYSOFT) if (!$self->{_declined_on_fail}); |
27 |
|
|
return (DECLINED); |
28 |
|
|
} |
29 |
|
|
if ($result == 1) { |
30 |
|
|
@@ -202,6 +207,7 @@ |
31 |
|
|
} |
32 |
|
|
elsif ($result) { |
33 |
|
|
$self->log(LOGERROR, "ClamAV error: $cmd: $result\n"); |
34 |
|
|
+ return (DENYSOFT) if (!$self->{_declined_on_fail}); |
35 |
|
|
} |
36 |
|
|
else { |
37 |
|
|
$transaction->header->add( 'X-Virus-Checked', |