ospam-fix.patch
author Tomas Zeman <tzeman@volny.cz>
Thu, 29 May 2008 16:01:24 +0200
changeset 25 7010e267c646
parent 1 32f160a66da4
permissions -rw-r--r--
diet-runit: 1.8.0 -> 1.9.0

From 291afcd40d85547bb2c34219c57742fcfcc7552b Mon Sep 17 00:00:00 2001
From: Tomas Zeman <tzeman@volny.cz>
Date: Sun, 16 Dec 2007 11:55:13 +0100
Subject: [PATCH] ospam-0.01-1-i686.fpm:
 *added missing spamclam to repo

---
 source/custom/ospam/spamclam |   97 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 97 insertions(+), 0 deletions(-)
 create mode 100755 source/custom/ospam/spamclam

diff --git a/source/custom/ospam/spamclam b/source/custom/ospam/spamclam
new file mode 100755
index 0000000..dae445b
--- /dev/null
+++ b/source/custom/ospam/spamclam
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+[ -f /etc/ospam/spamclam ] && . /etc/ospam/spamclam
+
+# CONFIG
+SPAMC=${SPAMC:-/usr/bin/spamc}
+CLAMDSCAN=${CLAMDSCAN:-/usr/bin/clamdscan}
+FORWARDBIN=${FORWARDBIN:-/var/qmail/bin/forward}
+M822FIELD=${M822FIELD:-/usr/bin/822field}
+FILEPIPE=${FILEPIPE:-/command/seekablepipe} #/usr/bin/filepipe
+VDELIVER=${VDELIVER:-/usr/bin/vdeliver}
+TMP=${TMP:-.}
+
+[ -x $SPAMC -a -x $CLAMDSCAN -a -x $FORWARDBIN -a -x $M822FIELD ] || {
+	echo -e "$0: Required programs do not exist"
+	cat | $FILEPIPE $VDELIVER
+	exit 0
+}
+
+ADDR_QUARANTINE="$1"
+DELIVER_VIRUS="$2"
+ADDR_SPAM="$3"
+DELIVER_SPAM="$4"
+MAILUSER="$5"
+
+if [ -z "$ADDR_QUARANTINE" -o -z "$ADDR_SPAM" -o -z "$DELIVER_VIRUS" -o -z "$DELIVER_SPAM" ]; then
+	echo -e "Usage: $0 quarantine_address deliver_virus_to_recipient(0/1) spam_address deliver_spam_to_recipient(0/1) [mailuser address]"
+	echo -e "address may be: _ignore_ -> checking of that feature is ignored"
+	echo -e "                _noaddr_  -> if infected, do not forward"
+	cat
+	exit 0
+fi
+
+MAILFILE="$TMP/mail.tmp.$$"
+
+cat >$MAILFILE
+
+VIRUS=0
+SPAM=0
+STATUS=0
+
+spam_flags=""
+
+if [ "$ADDR_QUARANTINE" != "_ignore_" ]; then
+	virus=`$CLAMDSCAN --disable-summary --stdout $MAILFILE | grep FOUND`
+	if [ ! "$virus" = "" ]; then
+		VIRUS=1
+		cat $MAILFILE | sed -e 's/^Subject:/Subject: [virus]/' > $MAILFILE.1
+	fi
+fi
+
+if [ $VIRUS -eq 0 -a "$ADDR_SPAM" != "_ignore_" ]; then
+	if [ ! -z $MAILUSER ]; then
+		spam_flags="-u $MAILUSER"
+	fi
+	$SPAMC $spam_flags < $MAILFILE > $MAILFILE.1
+	isspam=`$M822FIELD X-Spam-Flag < $MAILFILE.1 | grep YES | wc -l`
+	if [ $isspam -ne 0 ]; then
+		SPAM=1
+	fi
+fi
+
+
+if [ $VIRUS -eq 1 ]; then
+	STATUS=99
+	if [ $DELIVER_VIRUS -eq 1 ]; then
+		cat $MAILFILE.1 | $FILEPIPE $VDELIVER
+	fi
+	if [ "$ADDR_QUARANTINE" != "_noaddr_" ]; then
+		$FORWARDBIN $ADDR_QUARANTINE < $MAILFILE.1
+		if [ $? -ne 0 ]; then
+			STATUS=111
+		fi
+	fi
+else 
+if [ $SPAM -eq 1 ]; then
+	STATUS=99
+	if [ $DELIVER_SPAM -eq 1 ]; then
+		cat $MAILFILE.1 | $FILEPIPE $VDELIVER
+	fi
+	if [ "$ADDR_SPAM" != "_noaddr_" ]; then
+		$FORWARDBIN $ADDR_SPAM < $MAILFILE.1
+		if [ $? -ne 0 ]; then
+			STATUS=111
+		fi
+	fi
+fi
+fi
+
+if [ $VIRUS -eq 0 -a $SPAM -eq 0 ]; then
+	cat $MAILFILE | $FILEPIPE $VDELIVER
+fi
+
+rm -f $MAILFILE $MAILFILE.1
+
+exit $STATUS
+
-- 
1.5.3.4