ospam-fix.patch
author Tomas Zeman <tzeman@volny.cz>
Tue, 27 May 2008 14:00:24 +0200
changeset 16 f647efb8ae53
parent 1 32f160a66da4
permissions -rw-r--r--
diet-cvm: 0.82 -> 0.90
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
From 291afcd40d85547bb2c34219c57742fcfcc7552b Mon Sep 17 00:00:00 2001
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
From: Tomas Zeman <tzeman@volny.cz>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
Date: Sun, 16 Dec 2007 11:55:13 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
Subject: [PATCH] ospam-0.01-1-i686.fpm:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
 *added missing spamclam to repo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
---
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
 source/custom/ospam/spamclam |   97 ++++++++++++++++++++++++++++++++++++++++++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
 1 files changed, 97 insertions(+), 0 deletions(-)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
 create mode 100755 source/custom/ospam/spamclam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
diff --git a/source/custom/ospam/spamclam b/source/custom/ospam/spamclam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
new file mode 100755
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
index 0000000..dae445b
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
+++ b/source/custom/ospam/spamclam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
@@ -0,0 +1,97 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
+[ -f /etc/ospam/spamclam ] && . /etc/ospam/spamclam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
+# CONFIG
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
+SPAMC=${SPAMC:-/usr/bin/spamc}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
+CLAMDSCAN=${CLAMDSCAN:-/usr/bin/clamdscan}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
+FORWARDBIN=${FORWARDBIN:-/var/qmail/bin/forward}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
+M822FIELD=${M822FIELD:-/usr/bin/822field}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
+FILEPIPE=${FILEPIPE:-/command/seekablepipe} #/usr/bin/filepipe
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
+VDELIVER=${VDELIVER:-/usr/bin/vdeliver}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
+TMP=${TMP:-.}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
+[ -x $SPAMC -a -x $CLAMDSCAN -a -x $FORWARDBIN -a -x $M822FIELD ] || {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
+	echo -e "$0: Required programs do not exist"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
+	cat | $FILEPIPE $VDELIVER
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
+	exit 0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
+ADDR_QUARANTINE="$1"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
+DELIVER_VIRUS="$2"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
+ADDR_SPAM="$3"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
+DELIVER_SPAM="$4"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
+MAILUSER="$5"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
+if [ -z "$ADDR_QUARANTINE" -o -z "$ADDR_SPAM" -o -z "$DELIVER_VIRUS" -o -z "$DELIVER_SPAM" ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
+	echo -e "Usage: $0 quarantine_address deliver_virus_to_recipient(0/1) spam_address deliver_spam_to_recipient(0/1) [mailuser address]"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
+	echo -e "address may be: _ignore_ -> checking of that feature is ignored"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
+	echo -e "                _noaddr_  -> if infected, do not forward"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
+	cat
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
+	exit 0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
+MAILFILE="$TMP/mail.tmp.$$"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
+cat >$MAILFILE
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    55
+VIRUS=0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    56
+SPAM=0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
+STATUS=0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    58
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    59
+spam_flags=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    60
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    61
+if [ "$ADDR_QUARANTINE" != "_ignore_" ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    62
+	virus=`$CLAMDSCAN --disable-summary --stdout $MAILFILE | grep FOUND`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    63
+	if [ ! "$virus" = "" ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    64
+		VIRUS=1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    65
+		cat $MAILFILE | sed -e 's/^Subject:/Subject: [virus]/' > $MAILFILE.1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    66
+	fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    67
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    68
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    69
+if [ $VIRUS -eq 0 -a "$ADDR_SPAM" != "_ignore_" ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    70
+	if [ ! -z $MAILUSER ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    71
+		spam_flags="-u $MAILUSER"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    72
+	fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    73
+	$SPAMC $spam_flags < $MAILFILE > $MAILFILE.1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    74
+	isspam=`$M822FIELD X-Spam-Flag < $MAILFILE.1 | grep YES | wc -l`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    75
+	if [ $isspam -ne 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    76
+		SPAM=1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    77
+	fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    78
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    79
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    80
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    81
+if [ $VIRUS -eq 1 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    82
+	STATUS=99
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    83
+	if [ $DELIVER_VIRUS -eq 1 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    84
+		cat $MAILFILE.1 | $FILEPIPE $VDELIVER
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    85
+	fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    86
+	if [ "$ADDR_QUARANTINE" != "_noaddr_" ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    87
+		$FORWARDBIN $ADDR_QUARANTINE < $MAILFILE.1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    88
+		if [ $? -ne 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    89
+			STATUS=111
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    90
+		fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    91
+	fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    92
+else 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    93
+if [ $SPAM -eq 1 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    94
+	STATUS=99
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    95
+	if [ $DELIVER_SPAM -eq 1 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    96
+		cat $MAILFILE.1 | $FILEPIPE $VDELIVER
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    97
+	fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    98
+	if [ "$ADDR_SPAM" != "_noaddr_" ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    99
+		$FORWARDBIN $ADDR_SPAM < $MAILFILE.1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   100
+		if [ $? -ne 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   101
+			STATUS=111
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   102
+		fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   103
+	fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   104
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   105
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   106
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   107
+if [ $VIRUS -eq 0 -a $SPAM -eq 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   108
+	cat $MAILFILE | $FILEPIPE $VDELIVER
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   109
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   110
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   111
+rm -f $MAILFILE $MAILFILE.1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   112
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   113
+exit $STATUS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   114
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   115
-- 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   116
1.5.3.4
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   117