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 = "@clamscan@"; + # 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 @@ -85,7 +85,7 @@ # Virus related # Av scanners and related vars -use vars qw ( $antivir $avp $avpdc $AVPDIR $csav $fprot $fsav $inocucmd $nod32 +use vars qw ( $antivir $avp $avpdc $AVPDIR $csav $fprot $fsav $inocucmd $nod32 $clamav $nod32cli $oav $panda $rav $sophos $sophos_ide_path $cscmdline $scs_host $scs_port $uvscan $vbengcl $vscan $vfind $sophie_sockname $trophie_sockname $mksvir ); @@ -353,6 +353,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,15 @@ 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) +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 @@ AC_MSG_CHECKING([if any virus scanners are installed at all]) -if test "x$mksvir$antivir$uvscan$ufindvir$fvsco$sophos$avp$avpdc$fsav$vscan$vfind$inocucmd$rav$nod32$nod32cli$csav$vbengcl$sophie$trophie$panda$fprot$oav$cscmdline" = "x" ; then +if test "x$clamav$mksvir$antivir$uvscan$ufindvir$fvsco$sophos$avp$avpdc$fsav$vscan$vfind$inocucmd$rav$nod32$nod32cli$csav$vbengcl$sophie$trophie$panda$fprot$oav$cscmdline" = "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)