[Mimedefang] Backup virusscanner

Steffen Kaiser skmimedefang at smail.inf.fh-bonn-rhein-sieg.de
Mon Jun 21 03:17:07 EDT 2004


On Fri, 18 Jun 2004, Didi Rieder wrote:

> I know that MIMEDefang supports multiple virusscanner and one can use several 
> of them
> simultaneously. But is it also possible to run one virusscanner as the main 
> scanner
> and only try other scanners if the main scanner fails to run.
>
> e.g.
> if clamd dies, do not TMPFAIL immediately but try first to run calmscan or 
> uvscan or
> others....

Code your own message/entity_contains_virus function by to call the 
appropriate entity_contains_virus_clamd (a.s.o.) function directly.

E.g.: This was the function before it gone into mimedefang.pl:

sub message_contains_virus () {
     return message_contains_virus_avp()      if ($Features{'Virus:AVP'});
     return message_contains_virus_fprot()    if 
($Features{'Virus:FPROT'});
     return message_contains_virus_fsav()     if ($Features{'Virus:FSAV'});
     return message_contains_virus_hbedv()    if 
($Features{'Virus:HBEDV'});
     return message_contains_virus_nai()      if ($Features{'Virus:NAI'});
     return message_contains_virus_nvcc()     if ($Features{'Virus:NVCC'});
     return message_contains_virus_rav()      if ($Features{'Virus:RAV'});
     return message_contains_virus_sophie()   if 
($Features{'Virus:SOPHIE'});
     return message_contains_virus_trophie()  if 
($Features{'Virus:TROPHIE'});
     return message_contains_virus_sophos()   if 
($Features{'Virus:SOPHOS'});
     return message_contains_virus_trend()    if 
($Features{'Virus:TREND'});
     return message_contains_virus_filescan() if 
($Features{'Virus:FileScan'});
     return message_contains_virus_clamd()    if 
($Features{'Virus:CLAMD'});
     return message_contains_virus_clamav()   if 
($Features{'Virus:CLAMAV'});
     return message_contains_virus_carrier_scan() if 
($Features{'Virus:SymantecCSS'});
     return (wantarray ? (0, 'ok', 'ok') : 0);
}

So you could move to _clamd() check first, but instead to return 
immediately check its return value and proceed with the next scanner, if 
it returns with TEMPFAIL.

Bye,

-- 
Steffen Kaiser



More information about the MIMEDefang mailing list