[Mimedefang] Any point in using File::Scan as well as clamav?

Peter Campion-Bye peter at pandasys.co.uk
Tue Aug 5 05:30:01 EDT 2003


> Thanks for that. I've got it working, but I had to change
> message_contains_virus... ()
> to
> entity_contains_virus... ($e)
> in the second sub.

Do you mean you changed:
sub entity_contains_virus ($) {
to:
sub entity_contains_virus ($e) {
?

If I do that, 'mimedefang.pl -test' gives me the error:
Not enough arguments for main::entity_contains_virus at
/etc/mail/mimedefang-filter line 224, near "$entity)" Compilation failed
in require at /usr/local/bin/mimedefang.pl line 4023.

Here's my code again, could someone who's a Perl programmer validate it
please? I'm a C++ programmer, I'm not very familiar with Perl syntax.
Thanks

# Scan for a virus using all installed scanners, stop on the first
positive sub message_contains_virus () {
  my($code, $cat, $act);
  ($code, $cat, $act) = message_contains_virus_filescan();
  return (wantarray ? ($code, $cat, $act) : $code) if ($act ne "ok");
  ($code, $cat, $act) = message_contains_virus_clamd();
  return (wantarray ? ($code, $cat, $act) : $code) if ($act ne "ok");
  return (wantarray ? (0, 'ok', 'ok') : 0);
}

sub entity_contains_virus ($) {
  my($e) = @_;
  my($code, $cat, $act);
  ($code, $cat, $act) = message_contains_virus_filescan();
  return (wantarray ? ($code, $cat, $act) : $code) if ($act ne "ok");
  ($code, $cat, $act) = message_contains_virus_clamd();
  return (wantarray ? ($code, $cat, $act) : $code) if ($act ne "ok");
  return (wantarray ? (0, 'ok', 'ok') : 0);
}



More information about the MIMEDefang mailing list