diff options
-rw-r--r-- | mail/Makefile | 1 | ||||
-rw-r--r-- | mail/clamfilter/Makefile | 25 | ||||
-rw-r--r-- | mail/clamfilter/distinfo | 2 | ||||
-rw-r--r-- | mail/clamfilter/files/patch-Makefile | 17 | ||||
-rw-r--r-- | mail/clamfilter/files/patch-clamfilter.c | 79 | ||||
-rw-r--r-- | mail/clamfilter/files/pkg-message | 13 | ||||
-rw-r--r-- | mail/clamfilter/pkg-descr | 13 |
7 files changed, 150 insertions, 0 deletions
diff --git a/mail/Makefile b/mail/Makefile index 5a60142b75d0..a67a6db6768a 100644 --- a/mail/Makefile +++ b/mail/Makefile @@ -35,6 +35,7 @@ SUBDIR += c-sig SUBDIR += cclient SUBDIR += chk4mail + SUBDIR += clamfilter SUBDIR += cmail SUBDIR += cone SUBDIR += contact-lookup-applet diff --git a/mail/clamfilter/Makefile b/mail/clamfilter/Makefile new file mode 100644 index 000000000000..70745511bc78 --- /dev/null +++ b/mail/clamfilter/Makefile @@ -0,0 +1,25 @@ +# New ports collection makefile for: clamfilter +# Date created: 11 Feb 2005 +# Whom: SeaD +# +# $FreeBSD$ +# + +PORTNAME= clamfilter +PORTVERSION= 0.5 +CATEGORIES= mail +MASTER_SITES= http://www.ensita.net/products/clamfilter/ + +MAINTAINER= sead@mail.ru +COMMENT= A small, efficient clamav content filter for Postfix + +RUN_DEPENDS= ${LOCALBASE}/bin/clamdscan:${PORTSDIR}/security/clamav + +PKGMESSAGE= ${WRKSRC}/pkg-message +PLIST_FILES= bin/clamfilter + +post-install: + @${SED} -e 's,%%PREFIX%%,${PREFIX},g' ${FILESDIR}/pkg-message > ${PKGMESSAGE} + @${CAT} ${PKGMESSAGE} + +.include <bsd.port.mk> diff --git a/mail/clamfilter/distinfo b/mail/clamfilter/distinfo new file mode 100644 index 000000000000..3888de658a2f --- /dev/null +++ b/mail/clamfilter/distinfo @@ -0,0 +1,2 @@ +MD5 (clamfilter-0.5.tar.gz) = 27047253d5eda132f93d276a31798e08 +SIZE (clamfilter-0.5.tar.gz) = 13975 diff --git a/mail/clamfilter/files/patch-Makefile b/mail/clamfilter/files/patch-Makefile new file mode 100644 index 000000000000..4f74dea0c64c --- /dev/null +++ b/mail/clamfilter/files/patch-Makefile @@ -0,0 +1,17 @@ +--- Makefile.orig Fri Dec 3 02:50:42 2004 ++++ Makefile Sun Feb 27 18:50:00 2005 +@@ -3,5 +5,4 @@ + +-PREFIX=/usr/ + VERSION=0.5 + + all: clamfilter +@@ -27,7 +26,7 @@ + + clamfilter: clamfilter.c + cc -o clamfilter clamfilter.c \ +- -DVERSION=\"$(VERSION)\" ++ -DVERSION=\"$(VERSION)\" -DLOCALBASE=\"$(LOCALBASE)\" + strip clamfilter + + dist: clamfilter diff --git a/mail/clamfilter/files/patch-clamfilter.c b/mail/clamfilter/files/patch-clamfilter.c new file mode 100644 index 000000000000..8ad2afaa1279 --- /dev/null +++ b/mail/clamfilter/files/patch-clamfilter.c @@ -0,0 +1,79 @@ +--- clamfilter.c.orig Fri Dec 3 02:50:42 2004 ++++ clamfilter.c Sun Feb 27 18:50:00 2005 +@@ -11,6 +11,7 @@ + #include <sys/wait.h> + #include <unistd.h> + #include <stdlib.h> ++#include <stdio.h> + #include <syslog.h> + #include <stdarg.h> + #include <errno.h> +@@ -20,7 +21,7 @@ + #endif + + #ifndef CLAMDSCAN +-#define CLAMDSCAN "/usr/bin/clamdscan" ++#define CLAMDSCAN LOCALBASE "/bin/clamdscan" + #endif + + #ifndef VIRUS_NOTIFY +@@ -63,7 +64,7 @@ + //skip header, move to header content + *result += strlen(header); + //search for header content end +- if (!(tmp = strstr(*result,"\n"))) ++ if (!(tmp = (char *) strstr(*result,"\n"))) + { + //not found - all header + tmp = *result+strlen(*result); +@@ -77,7 +78,7 @@ + //skip header, move to header content + *result += strlen(header); + //search for header content end +- if (!(tmp = strstr(*result,"\n"))) ++ if (!(tmp = (char *) strstr(*result,"\n"))) + { + //not found - all header + tmp = *result+strlen(*result); +@@ -291,7 +292,7 @@ + int readfd,writefd; + int status; + char buffer[102401]; +- int size; ++ int size, res; + + if (pipe(childread)) { + syslog(LOG_MAIL|LOG_ERR, "check_file: " \ +@@ -314,7 +315,7 @@ + dup2(open("/dev/null","w"),2); + dup2(readfd,0); + dup2(open("/dev/null","w"),1); +- int res=execl(CLAMDSCAN, CLAMDSCAN, "--quiet", temporalfile, NULL); ++ res=execl(CLAMDSCAN, CLAMDSCAN, "--quiet", temporalfile, NULL); + syslog(LOG_MAIL|LOG_ERR, "check_file: " \ + "child: cannot exec, return code %d", res); + return(EX_TEMPFAIL); +@@ -339,8 +340,8 @@ + } + + +-void read_args(int argc, char** argv, const char** returnpath, +- const char** receipent, const char ** fromemail) { ++void read_args(int argc, char** argv, char** returnpath, ++ char** receipent, char ** fromemail) { + int opt, i, j; int restlen; + + while(-1 != (opt = getopt(argc, argv, "f:F:D"))) { +@@ -433,9 +434,9 @@ + int exitcode = 0; + int len = 0; + int virusresult = 0; +- const char *returnpath = NULL; +- const char *receipent = NULL; +- const char *fromemail = NULL; ++ char *returnpath = NULL; ++ char *receipent = NULL; ++ char *fromemail = NULL; + + read_args(argc, argv, &returnpath, &receipent, &fromemail); + diff --git a/mail/clamfilter/files/pkg-message b/mail/clamfilter/files/pkg-message new file mode 100644 index 000000000000..4df7f9440ef6 --- /dev/null +++ b/mail/clamfilter/files/pkg-message @@ -0,0 +1,13 @@ +====================================================================== +For Postfix users: + +1. Edit master.cf and put there: +filter unix - n n - - pipe flags=R user=postfix \ + argv=%%PREFIX%%/bin/clamfilter -F admin@domain.com \ + -f ${sender} -- ${recipient} + +2. Add the content_filter option to smtpd binary: +smtp inet n - n - - smtpd -o content_filter=filter:dummy + +3. Restart Postfix. +====================================================================== diff --git a/mail/clamfilter/pkg-descr b/mail/clamfilter/pkg-descr new file mode 100644 index 000000000000..d3b6125f5d10 --- /dev/null +++ b/mail/clamfilter/pkg-descr @@ -0,0 +1,13 @@ +This is a small, efficient clamav content filter for Postfix. What is does +is just a content filtering of messages passing via Postfix MTA thru clamav. + +This version will fork and run clamdscan binary. Next version will connect +to clamd directly via libclamav. + +Clamfilter was designed to be the only content filter in Postfix installation, +and this is why this software appeared. All other content filters for Postfix +are designed to be flexible; clamfilter is not. It is just designed to perform +a single task - filtering thru clamav. + +Author Egor Egorov <egor@ensita.net> +WWW: http://www.ensita.net/products/clamfilter/ |