# $Id: amavis-filter,v 1.8 2003/03/01 15:22:19 bengen Exp $

#
# Main file for the Embedded Perl version of AMAVIS
#

use AMAVIS;
use strict;

use vars qw/$returncode $returntext $args $amavis/;

# Main routine that is called from Exim system filter
sub amavis_filter_scan {
  $$args{'eximperl_mid'} = shift;
  $$args{'sender'} = shift;
  @{$$args{'recipients'}} = split /, +/,shift;

  AMAVIS->init($args);
  AMAVIS->process_message($args);
  AMAVIS->cleanup($args);

  # Pass control back to the system filter.
  return $$args{'eximperl_returncode'};
}

# Returns 
sub amavis_filter_result() {
  return (defined $$args{'eximperl_returncode'} ?
	  $$args{'eximperl_returncode'} :
	  'unknown');
}

# Returns text to be put into freeze message
sub amavis_filter_text() {
  if (defined $returntext) {
    return $returntext
  }
  else {
    return '';
  }
}

# Returns scanners list for X-Scanned header 
sub amavis_virus_scanner_list() {
  return join(', ', @{$$args{'virus_scanners'}});
}

# Returns headers to be included by system filter
sub amavis_headers() {
  return join(', ', @{$$args{'headers'}});
}

1;
