[Mimedefang] Cascading virus scanners
Enrico Scholz
enrico.scholz at sigma-chemnitz.de
Mon Sep 23 04:50:01 EDT 2002
mimedefang at lists.roaringpenguin.com (Aaron Paetznick) writes:
> What if I wanted paranoid-level virus scanning? Could I run several
> different virus scanners in series?
Yes; I am using
---
my @SCANNERS = (
['Virus:FileScan', \&message_contains_virus_filescan, \&entity_contains_virus_filescan],
['Virus:AVP', \&message_contains_virus_avp, \&entity_contains_virus_avp ],
['Virus:FPROT', \&message_contains_virus_fprot, \&entity_contains_virus_fprot ],
['Virus:FSAV', \&message_contains_virus_fsav, \&entity_contains_virus_fsav ],
['Virus:HBEDV', \&message_contains_virus_hbedv, \&entity_contains_virus_hbedv ],
['Virus:NAI', \&message_contains_virus_nai, \&entity_contains_virus_nai ],
['Virus:NVCC', \&message_contains_virus_nvcc, \&entity_contains_virus_nvcc ],
['Virus:RAV', \&message_contains_virus_rav, \&entity_contains_virus_rav ],
['Virus:SOPHIE', \&message_contains_virus_sophie, \&entity_contains_virus_sophie ],
['Virus:SOPHOS', \&message_contains_virus_sophos, \&entity_contains_virus_sophos ],
['Virus:TREND', \&message_contains_virus_trend, \&entity_contains_virus_trend ],
['Virus:CLAMAV', \&message_contains_virus_clamav, \&entity_contains_virus_clamav ],
);
## ...
sub contains_virus($$) {
my ($idx,$e) = @_;
foreach my $val ( @SCANNERS ) {
my ($feature, at funcs) = @{$val};
next if !($Features{$feature});
if (wantarray) {
my @res = $funcs[$idx]($e);
return (@res,$feature) if $res[0]!=0;
}
else {
my $res = $funcs[$idx]($e);
return $res if $res!=0;
}
}
return (wantarray ? (0, 'ok', 'ok','') : 0);
}
# Scan for a virus using the first supported virus scanner we find.
sub message_contains_virus () {
return contains_virus(0, '');
}
# Scan for a virus using the first supported virus scanner we find.
sub entity_contains_virus ($) {
my($e) = @_;
return contains_virus(1, $e);
}
-----
(I am not a perl-programmer so the statements above may be
expressed more effective probably)
Enrico
--
q: If you were young again, would you start writing TeX again or would
you use Microsoft Word, or another word processor?
a: I hope to die before I have to use Microsoft Word.
-- Harald Koenig <koenig at tat.physik.uni-tuebingen.de> asking D.E.Knuth
More information about the MIMEDefang
mailing list