+++ /dev/null
-diff -urN amavisd-new-20020630.org/amavis/amavisd.in amavisd-new-20020630/amavis/amavisd.in
---- amavisd-new-20020630.org/amavis/amavisd.in Mon Sep 9 21:11:20 2002
-+++ amavisd-new-20020630/amavis/amavisd.in Tue Sep 10 12:25:35 2002
-@@ -3669,7 +3669,7 @@
- use vars qw($output @virusname $scan_status);
-
- BEGIN {
-- import Amavis::Conf qw(:av);
-+ import Amavis::Conf qw(:av $TEMPBASE);
- import Amavis::Util qw(do_log am_id retcode);
- }
-
+++ /dev/null
-diff -urN amavisd-snapshot-20020300.org/amavis/amavisd.conf.in amavisd-snapshot-20020300/amavis/amavisd.conf.in
---- amavisd-snapshot-20020300.org/amavis/amavisd.conf.in Thu Jun 6 22:51:22 2002
-+++ amavisd-snapshot-20020300/amavis/amavisd.conf.in Thu Jun 6 22:56:59 2002
-@@ -42,6 +42,9 @@
- $avp = "@avp@";
- $AVPDIR = dirname($avp);
-
-+# Clam AntiVirus http://www.konarski.edu.pl/~zolw/clam.html
-+$clamav = "@clamav@";
-+
- # KasperskyLab AVPDaemon / AvpDaemonClient
- #
- # use AvpDaemon and AvpDaemonClient
-diff -urN amavisd-snapshot-20020300.org/amavis/amavisd.in amavisd-snapshot-20020300/amavis/amavisd.in
---- amavisd-snapshot-20020300.org/amavis/amavisd.in Thu Jun 6 22:51:22 2002
-+++ amavisd-snapshot-20020300/amavis/amavisd.in Thu Jun 6 23:19:59 2002
-@@ -332,7 +332,7 @@
-
- # Av scanners and related vars
- use vars qw ( $antivir $avp $avpdc $AVPDIR $csav $drweb $fprot $fprotd $fsav
-- $inocucmd $mks $nod32 $nod32cli $norman $oav $panda $rav $sophos
-+ $inocucmd $mks $nod32 $nod32cli $norman $oav $panda $rav $sophos $clamav
- $sophos_ide_path $cscmdline $scs_host $scs_port $uvscan $vbengcl $vexira
- $vfind $vscan $sophie_sockname $trophie_sockname );
-
-@@ -1070,6 +1070,7 @@
- @avp_scanner_frag@
- @avpdc_scanner_frag@
- @cai_scanner_frag@
-+@clamav_scanner_frag@
- @csav_scanner_frag@
- @cyber_scanner_frag@
- @fprot_scanner_frag@
-diff -urN amavisd-snapshot-20020300.org/amavis/av/clamav amavisd-snapshot-20020300/amavis/av/clamav
---- amavisd-snapshot-20020300.org/amavis/av/clamav Thu Jan 1 01:00:00 1970
-+++ amavisd-snapshot-20020300/amavis/av/clamav Fri Jun 7 00:07:04 2002
-@@ -0,0 +1,21 @@
-+#
-+# clamav (GPL) http://www.konarski.edu.pl/~zolw/clam.html
-+#
-+
-+
-+if ($clamav) {
-+ do_log(2, "Using $clamav");
-+ chop($output = `$clamav --stdout -r -w --one-virus $TEMPDIR/parts 2>&1`);
-+ $errval = retcode($?);
-+ $scanner_errors &= $errval;
-+ do_log(2,$output);
-+ if ($errval != 0) {
-+ if ($errval >= 51 || $errval <= 53) {
-+ @virusname = ($output =~ /.*: (.+) FOUND/g);
-+ do_virus($output);
-+ } else {
-+ do_log(0,"Virus scanner failure: $clamav (error code: $errval)");
-+ }
-+ }
-+}
-+
-diff -urN amavisd-snapshot-20020300.org/configure.in amavisd-snapshot-20020300/configure.in
---- amavisd-snapshot-20020300.org/configure.in Thu Jun 6 22:51:22 2002
-+++ amavisd-snapshot-20020300/configure.in Thu Jun 6 22:59:01 2002
-@@ -385,6 +385,7 @@
- avp_scanner_frag=$srcdir/amavis/av/avp
- avpdc_scanner_frag=$srcdir/amavis/av/avpdc
- cai_scanner_frag=$srcdir/amavis/av/cai
-+ clamav_scanner_frag=$srcdir/amavis/av/clamav
- csav_scanner_frag=$srcdir/amavis/av/csav
- cyber_scanner_frag=$srcdir/amavis/av/cyber
- fprot_scanner_frag=$srcdir/amavis/av/fprot
-@@ -456,6 +457,17 @@
- cai_scanner_frag=$srcdir/amavis/av/cai
- fi
-
-+### ClamAntiVirus http://www.konarski.edu.pl/~zolw/clam.html
-+clamav_scanner_frag=/dev/null
-+AC_CHECKING([*** Clam AntiVirus Scanner ***])
-+AC_PATH_PROG(clamscan, clamscan, , $PATH:/bin:/usr/bin:/usr/local/bin)
-+$clamav = $clamscan
-+AC_SUBST(clamav)
-+if test "x$clamscan" != "x" ; then
-+ avscanner="$avscanner Clam AntiVirus Scanner"
-+ clamav_scanner_frag=$srcdir/amavis/av/clamav
-+fi
-+
- ### Command AntiVirus for Linux
- csav_scanner_frag=/dev/null
- AC_CHECKING([*** Command AntiVirus for Linux ***])
-@@ -698,7 +708,7 @@
- fi
-
- AC_MSG_CHECKING([if any virus scanners are installed at all])
--if test "x$antivir$uvscan$ufindvir$fvsco$sophos$avp$avpdc$fsav$vscan$vfind$inocucmd$rav$nod32$nod32cli$csav$vbengcl$sophie$trophie$panda$fprot$fprotd$oav$cscmdline$drweb$mks$vexira$norman" = "x" ; then
-+if test "x$clamav$antivir$uvscan$ufindvir$fvsco$sophos$avp$avpdc$fsav$vscan$vfind$inocucmd$rav$nod32$nod32cli$csav$vbengcl$sophie$trophie$panda$fprot$fprotd$oav$cscmdline$drweb$mks$vexira$norman" = "x" ; then
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([
-
-@@ -849,6 +859,7 @@
- AC_SUBST_FILE(avp_scanner_frag)
- AC_SUBST_FILE(avpdc_scanner_frag)
- AC_SUBST_FILE(cai_scanner_frag)
-+AC_SUBST_FILE(clamav_scanner_frag)
- AC_SUBST_FILE(csav_scanner_frag)
- AC_SUBST_FILE(cyber_scanner_frag)
- AC_SUBST_FILE(fsec_scanner_frag)
+++ /dev/null
-diff -ur amavisd-new-20020517.orig/amavis/amavisd.in amavisd-new-20020517/amavis/amavisd.in
---- amavisd-new-20020517.orig/amavis/amavisd.in Tue Sep 17 15:27:37 2002
-+++ amavisd-new-20020517/amavis/amavisd.in Tue Sep 17 15:27:29 2002
-@@ -380,7 +380,7 @@
-
- # Razor, SpamAssassin
- my(%razor_options, $razor_body_signature, $spamassasin_obj);
--my($spam_found, $spam_report);
-+my($spam_found, $spam_report, $spam_hits);
- use vars qw ( %whitelist_sender @whitelist_sender );
-
- my(%scan_cache, $body_signature, @timing);
-@@ -810,7 +810,7 @@
- $entity = undef; @SENDER_CONTACT = ( $SENDER );
- $VIRUSFILE = undef; $output = undef; @virusname = ();
- $some_compression = 0; getfilename_reset();
-- $spam_found = undef; $spam_report = undef;
-+ $spam_found = undef; $spam_report = undef; $spam_hits = undef;
- $body_signature = undef;
- $razor_body_signature = undef;
-
-@@ -924,7 +924,7 @@
- }
- } else {
- $which_section = "spam_scan";
-- $spam_found = spam_scan($fh);
-+ ($spam_found,$spam_hits) = spam_scan($fh);
- prolong_timer($which_section);
- if (defined($body_signature)) { # save results to cache
- $scan_cache{$body_signature}{'SF'} = $spam_found;
-@@ -1223,7 +1223,12 @@
- $_ .= "X-AMaViS-Alert: INFECTED, message contains virus: "
- . join(', ',@virusname) . "\n" if @virusname;
- $_ .= "X-Razor-id: $razor_body_signature\n" if $razor_body_signature ne "";
-- $_ .= "X-Spam-Status: $spam_report\n" if $spam_found && $spam_report ne "";
-+ if ($spam_found) {
-+ $_ .= "X-Spam-Status: $spam_report\n" if $spam_report ne "";
-+ $_ .= "X-Spam-Flag: YES\n";
-+ $_ .= "X-Spam-Level: " . '*' x ($spam_hits <= 0 ? 0 :
-+ ($spam_hits > 40 ? 40 : int($spam_hits+0.5))) . "\n";
-+ }
- $_ .= "\n";
- &$print_method($_) or die "sending mail header3: $!";
- }
-@@ -2032,7 +2037,7 @@
-
- # try SpamAssassin
-
-- my($sa_spam_found,$per_msg_status);
-+ my($sa_spam_found,$per_msg_status,$sa_hits);
- if ($size > $sa_mail_size_limit) {
- do_log(1, "spam_scan: don't waste time on SA, message longer than $sa_mail_size_limit bytes");
- $sa_spam_found = $razor_spam_found;
-@@ -2056,7 +2061,7 @@
- $sa_spam_found = $razor_spam_found;
- $spam_report = "tests=Razor" if $razor_spam_found;
- } else {
-- my($sa_hits) = $per_msg_status->get_hits
-+ $sa_hits = $per_msg_status->get_hits
- + ($razor_spam_found ? 3 : 0);
- $sa_spam_found = $sa_hits >= $per_msg_status->get_required_hits;
- $spam_report = sprintf("hits=%3.1f tests=%s",
-@@ -2073,7 +2078,7 @@
- $spam_report = ($sa_spam_found ? 'Yes' : 'No') .
- ($spam_report ne '' ? ', ' : '') . $spam_report;
- do_log( ($sa_spam_found ? 0 : 1), "spam_scan: $spam_report, <$SENDER>");
-- $sa_spam_found;
-+ ($sa_spam_found, $sa_hits);
- }
-
- #
+++ /dev/null
-diff -urN amavisd-snapshot-20020300.org/configure.in amavisd-snapshot-20020300/configure.in
---- amavisd-snapshot-20020300.org/configure.in Thu Jun 6 22:33:49 2002
-+++ amavisd-snapshot-20020300/configure.in Thu Jun 6 22:40:47 2002
-@@ -184,37 +184,7 @@
- AC_PATH_PROG(libmilter_config, libmilter-config)
- if test "x$libmilter_config" = x ; then
-
-- AC_CHECK_FUNCS(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton)])
--
-- ACX_PTHREAD([
-- LIBS="$PTHREAD_LIBS $LIBS"
-- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-- CC="$PTHREAD_CC"
--
-- AC_CHECK_HEADERS(sm/gen.h,
-- [AC_EGREP_HEADER([typedef.*bool],sm/gen.h,
-- [AC_DEFINE(HAVE_SM_GEN_BOOL_TYPE, 1,
-- [ Define if <sm/gen.h> defines the bool type. ])])])
--
-- # maybe sendmail is using sfio (for TLS encryption)
-- AC_CHECK_LIB(sfio,_stdprintf)
--
-- # sendmail 8.11: need -lsmutil
-- # sendmail 8.12: need -lsm
-- AC_CHECK_LIB(smutil,errstring,,[AC_CHECK_LIB(sm,sm_errstring)])
-- AC_CHECK_LIB(smutil,strlcpy,
-- [AC_DEFINE(HAVE_SMUTIL_STRLCPY, 1,
-- [ Define if you have the strlcpy function in libsmutil. ])],
-- [AC_CHECK_LIB(sm,sm_strlcpy,
-- [AC_DEFINE(HAVE_SM_SM_STRLCPY, 1,
-- [ Define if you have the sm_strlcpy function in libsm. ])])])
--
-- AC_CHECK_HEADERS(libmilter/mfapi.h,
-- [AC_CHECK_LIB(milter,smfi_main,,enable_milter=no)],
-- enable_milter=no)
-- ],
-- [AC_MSG_WARN([No usable pthreads library found - disabling milter])
-- enable_milter=no])
-+ enable_milter=no
-
- else
- milter_cflags=`$libmilter_config --cflags`
+++ /dev/null
-diff -urN amavisd-snapshot-20020300.org/configure.in amavisd-snapshot-20020300/configure.in
---- amavisd-snapshot-20020300.org/configure.in Thu Jun 6 22:33:49 2002
-+++ amavisd-snapshot-20020300/configure.in Thu Jun 6 22:35:50 2002
-@@ -155,7 +155,8 @@
- dnl unless --disable-qmail specified
- dnl
-
--AC_PATH_PROG(qmailinject,qmail-inject,/bin/false,/var/qmail/bin:/usr/local/qmail/bin)
-+qmailinject=/usr/lib/qmail/qmail-inject
-+AC_SUBST(qmailinject)
-
- qmaildir=`dirname $qmailinject`
- AC_SUBST(qmaildir)
-
+++ /dev/null
-diff -ur amavisd-new-20020517.orig/amavis/amavisd.in amavisd-new-20020517/amavis/amavisd.in
---- amavisd-new-20020517.orig/amavis/amavisd.in Tue Sep 17 15:27:37 2002
-+++ amavisd-new-20020517/amavis/amavisd.in Tue Sep 17 15:42:09 2002
-@@ -310,6 +310,8 @@
- # (e.g. for Postfix add 'recipient_delimiter = +' to main.cf)
-
- use vars '$recipient_delimiter'; $recipient_delimiter = '+';
-+use vars '$replace_existing_extension';
-+$replace_existing_extension = 1; # false: append ext, true: replace ext
-
-
- # Spam in general
-@@ -1027,6 +1029,10 @@
- next if !lookup($mailbox, undef, \@local_domains);
- my($localpart,$domain) = ($mailbox =~ /^(.*)(\@[^@]*)$/) ?
- ($1,$2) : ($mailbox,'');
-+ if ($replace_existing_extension) {
-+ # strip away existing address extensions
-+ $localpart =~ s/^(.*?)\Q$recipient_delimiter\E.*$/$1/;
-+ }
- $mailbox = $localpart . $recipient_delimiter
- . (@virusname ? $addr_extension_virus
- : ($spam_found ? $addr_extension_spam : ''))
-diff -ur amavisd-new-20020517.orig/amavis/amavisd.conf.in amavisd-new-20020517/amavis/amavisd.conf.in
---- amavisd-new-20020517.orig/amavis/amavisd.conf.in Tue Sep 17 15:09:47 2002
-+++ amavisd-new-20020517/amavis/amavisd.conf.in Tue Sep 17 15:43:31 2002
-@@ -489,6 +489,7 @@
- # (e.g. for Postfix add 'recipient_delimiter = +' to main.cf)
-
- $recipient_delimiter = '+';
-+$replace_existing_extension = 1; # false: append ext, true: replace ext
-
-
- # SMTP sender whitelist ACL to bypass spam checking: %whitelist_sender, @whitelist_sender