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