ports/77380: new port: mail/clamfilter - small efficient clamav filter for Postfix
SeaD
sead at mail.ru
Fri Feb 11 09:30:18 UTC 2005
>Number: 77380
>Category: ports
>Synopsis: new port: mail/clamfilter - small efficient clamav filter for Postfix
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Fri Feb 11 09:30:17 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: SeaD
>Release: FreeBSD 5.2.1-RELEASE-p13 i386
>Organization:
none
>Environment:
System: FreeBSD newcom.perm.ws 5.2.1-RELEASE-p13 FreeBSD 5.2.1-RELEASE-p13 #2: Mon Jan 17 19:04:49 YEKT 2005 sead at newcom.perm.ws:/usr/obj/usr/src/sys/KNEWCOM i386
>Description:
This is a small, efficient clamav content filter for Postfix
>How-To-Repeat:
>Fix:
--- clamfilter.shar begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# /usr/ports/mail/clamfilter/
# /usr/ports/mail/clamfilter/Makefile
# /usr/ports/mail/clamfilter/distinfo
# /usr/ports/mail/clamfilter/pkg-descr
# /usr/ports/mail/clamfilter/pkg-plist
# /usr/ports/mail/clamfilter/files
# /usr/ports/mail/clamfilter/files/patch-ab
# /usr/ports/mail/clamfilter/files/patch-aa
#
echo c - /usr/ports/mail/clamfilter/
mkdir -p /usr/ports/mail/clamfilter/ > /dev/null 2>&1
echo x - /usr/ports/mail/clamfilter/Makefile
sed 's/^X//' >/usr/ports/mail/clamfilter/Makefile << 'END-of-/usr/ports/mail/clamfilter/Makefile'
X# New ports collection makefile for: clamfilter
X# Date created: 11 Feb 2005
X# Whom: SeaD
X#
X# $FreeBSD$
X#
X
XPORTNAME= clamfilter
XPORTVERSION= 0.5
XCATEGORIES= mail
XMASTER_SITES= http://www.ensita.net/products/clamfilter/
X
XMAINTAINER= sead at mail.ru
XCOMMENT= This is a small, efficient clamav content filter for Postfix
X
Xpost-install:
X @${ECHO} "======================================================================"
X @${ECHO} " Edit master.cf and put there:"
X @${ECHO} " filter unix - n n - - pipe flags=R user=postfix \\"
X @${ECHO} " argv=${PREFIX}/bin/clamfilter -F admin at domain.com \\"
X @${ECHO} " -f \$${sender} -- \$${recipient}"
X @${ECHO} " And add the content_filter option to smtpd binary:"
X @${ECHO} " smtp inet n - n - - smtpd -o content_filter=filter:dummy"
X @${ECHO} " Restart Postfix."
X @${ECHO} "======================================================================"
X
X.include <bsd.port.mk>
END-of-/usr/ports/mail/clamfilter/Makefile
echo x - /usr/ports/mail/clamfilter/distinfo
sed 's/^X//' >/usr/ports/mail/clamfilter/distinfo << 'END-of-/usr/ports/mail/clamfilter/distinfo'
XMD5 (clamfilter-0.5.tar.gz) = 27047253d5eda132f93d276a31798e08
XSIZE (clamfilter-0.5.tar.gz) = 13975
END-of-/usr/ports/mail/clamfilter/distinfo
echo x - /usr/ports/mail/clamfilter/pkg-descr
sed 's/^X//' >/usr/ports/mail/clamfilter/pkg-descr << 'END-of-/usr/ports/mail/clamfilter/pkg-descr'
XThis is a small, efficient clamav content filter for Postfix. What is does
Xis just a content filtering of messages passing via Postfix MTA thru clamav.
X
XThis version will fork and run clamdscan binary. Next version will connect
Xto clamd directly via libclamav.
X
XClamfilter was designed to be the only content filter in Postfix installation,
Xand this is why this software appeared. All other content filters for Postfix
Xare designed to be flexible; clamfilter is not. It is just designed to perform
Xa single task - filtering thru clamav.
X
XAuthor Egor Egorov <egor at ensita.net>
XWWW: http://www.ensita.net/products/clamfilter/
END-of-/usr/ports/mail/clamfilter/pkg-descr
echo x - /usr/ports/mail/clamfilter/pkg-plist
sed 's/^X//' >/usr/ports/mail/clamfilter/pkg-plist << 'END-of-/usr/ports/mail/clamfilter/pkg-plist'
Xbin/clamfilter
END-of-/usr/ports/mail/clamfilter/pkg-plist
echo c - /usr/ports/mail/clamfilter/files
mkdir -p /usr/ports/mail/clamfilter/files > /dev/null 2>&1
echo x - /usr/ports/mail/clamfilter/files/patch-ab
sed 's/^X//' >/usr/ports/mail/clamfilter/files/patch-ab << 'END-of-/usr/ports/mail/clamfilter/files/patch-ab'
X--- clamfilter.c.orig Thu Dec 2 23:50:42 2004
X+++ clamfilter.c Fri Feb 11 13:44:35 2005
X@@ -11,6 +11,7 @@
X #include <sys/wait.h>
X #include <unistd.h>
X #include <stdlib.h>
X+#include <stdio.h>
X #include <syslog.h>
X #include <stdarg.h>
X #include <errno.h>
X@@ -63,7 +64,7 @@
X //skip header, move to header content
X *result += strlen(header);
X //search for header content end
X- if (!(tmp = strstr(*result,"\n")))
X+ if (!(tmp = (char *) strstr(*result,"\n")))
X {
X //not found - all header
X tmp = *result+strlen(*result);
X@@ -77,7 +78,7 @@
X //skip header, move to header content
X *result += strlen(header);
X //search for header content end
X- if (!(tmp = strstr(*result,"\n")))
X+ if (!(tmp = (char *) strstr(*result,"\n")))
X {
X //not found - all header
X tmp = *result+strlen(*result);
X@@ -291,7 +292,7 @@
X int readfd,writefd;
X int status;
X char buffer[102401];
X- int size;
X+ int size, res;
X
X if (pipe(childread)) {
X syslog(LOG_MAIL|LOG_ERR, "check_file: " \
X@@ -314,7 +315,7 @@
X dup2(open("/dev/null","w"),2);
X dup2(readfd,0);
X dup2(open("/dev/null","w"),1);
X- int res=execl(CLAMDSCAN, CLAMDSCAN, "--quiet", temporalfile, NULL);
X+ res=execl(CLAMDSCAN, CLAMDSCAN, "--quiet", temporalfile, NULL);
X syslog(LOG_MAIL|LOG_ERR, "check_file: " \
X "child: cannot exec, return code %d", res);
X return(EX_TEMPFAIL);
X@@ -339,8 +340,8 @@
X }
X
X
X-void read_args(int argc, char** argv, const char** returnpath,
X- const char** receipent, const char ** fromemail) {
X+void read_args(int argc, char** argv, char** returnpath,
X+ char** receipent, char ** fromemail) {
X int opt, i, j; int restlen;
X
X while(-1 != (opt = getopt(argc, argv, "f:F:D"))) {
X@@ -433,9 +434,9 @@
X int exitcode = 0;
X int len = 0;
X int virusresult = 0;
X- const char *returnpath = NULL;
X- const char *receipent = NULL;
X- const char *fromemail = NULL;
X+ char *returnpath = NULL;
X+ char *receipent = NULL;
X+ char *fromemail = NULL;
X
X read_args(argc, argv, &returnpath, &receipent, &fromemail);
X
END-of-/usr/ports/mail/clamfilter/files/patch-ab
echo x - /usr/ports/mail/clamfilter/files/patch-aa
sed 's/^X//' >/usr/ports/mail/clamfilter/files/patch-aa << 'END-of-/usr/ports/mail/clamfilter/files/patch-aa'
X--- Makefile.orig Thu Dec 2 23:50:42 2004
X+++ Makefile Mon Feb 7 21:27:15 2005
X@@ -1,7 +1,7 @@
X # clamfilter makefile
X # $Id: Makefile,v 1.4 2004/12/02 18:50:28 egor Exp $
X
X-PREFIX=/usr/
X+PREFIX=/usr/local/
X VERSION=0.5
X
X all: clamfilter
END-of-/usr/ports/mail/clamfilter/files/patch-aa
exit
--- clamfilter.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list