diff options
author | jlam <jlam@pkgsrc.org> | 2004-12-02 04:08:18 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2004-12-02 04:08:18 +0000 |
commit | fdc4b334af9b50993aefbb97bd45681d90a3aa56 (patch) | |
tree | 5ee870ec928f76b3df65a7e2d6f42376ffd57d0a /mail | |
parent | 222690ede7fb241120dcda7e7a433cd2afc50929 (diff) | |
download | pkgsrc-fdc4b334af9b50993aefbb97bd45681d90a3aa56.tar.gz |
proxsmtp 0.6 - SMTP proxy content filter
ProxSMTP is a flexible tool that allows you to reject, change or log
email based on arbitrary critera. It accepts SMTP connections and
forwards the SMTP commands and responses to another SMTP server. The
'DATA' email body is intercepted and filtered before forwarding.
ProxSMTP can be used as a transparent proxy to filter an entire
network's SMTP traffic at the router.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/proxsmtp/DESCR | 6 | ||||
-rw-r--r-- | mail/proxsmtp/Makefile | 33 | ||||
-rw-r--r-- | mail/proxsmtp/PLIST | 8 | ||||
-rw-r--r-- | mail/proxsmtp/distinfo | 6 | ||||
-rw-r--r-- | mail/proxsmtp/files/proxsmtpd.sh | 72 | ||||
-rw-r--r-- | mail/proxsmtp/patches/patch-aa | 13 | ||||
-rw-r--r-- | mail/proxsmtp/patches/patch-ab | 13 |
7 files changed, 151 insertions, 0 deletions
diff --git a/mail/proxsmtp/DESCR b/mail/proxsmtp/DESCR new file mode 100644 index 00000000000..34a1724c09e --- /dev/null +++ b/mail/proxsmtp/DESCR @@ -0,0 +1,6 @@ +ProxSMTP is a flexible tool that allows you to reject, change or log +email based on arbitrary critera. It accepts SMTP connections and +forwards the SMTP commands and responses to another SMTP server. The +'DATA' email body is intercepted and filtered before forwarding. +ProxSMTP can be used as a transparent proxy to filter an entire +network's SMTP traffic at the router. diff --git a/mail/proxsmtp/Makefile b/mail/proxsmtp/Makefile new file mode 100644 index 00000000000..008c449e6b9 --- /dev/null +++ b/mail/proxsmtp/Makefile @@ -0,0 +1,33 @@ +# $NetBSD: Makefile,v 1.1.1.1 2004/12/02 04:08:18 jlam Exp $ + +DISTNAME= proxsmtp-0.6 +CATEGORIES= mail +MASTER_SITES= http://memberwebs.com/nielsen/software/proxsmtp/ + +MAINTAINER= jlam@NetBSD.org +HOMEPAGE= http://memberwebs.com/nielsen/software/proxsmtp/ +COMMENT= SMTP proxy content filter + +USE_BUILDLINK3= yes +GNU_CONFIGURE= yes +USE_PKGINSTALL= yes + +EGDIR= ${PREFIX}/share/examples/${PKGBASE} +CONF_FILES= ${EGDIR}/proxsmtpd.conf ${PKG_SYSCONFDIR}/proxsmtpd.conf +RCD_SCRIPTS= proxsmtpd + +INSTALLATION_DIRS= share/examples/${PKGBASE} + +.include "../../mk/pthread.buildlink3.mk" + +post-install: + ${INSTALL_DATA_DIR} ${EGDIR} + for file in \ + doc/proxsmtpd.conf \ + scripts/add_header.sh \ + scripts/spamassassin.sh; \ + do \ + ${INSTALL_DATA} ${WRKSRC}/$$file ${EGDIR}; \ + done + +.include "../../mk/bsd.pkg.mk" diff --git a/mail/proxsmtp/PLIST b/mail/proxsmtp/PLIST new file mode 100644 index 00000000000..00537f01dd5 --- /dev/null +++ b/mail/proxsmtp/PLIST @@ -0,0 +1,8 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2004/12/02 04:08:18 jlam Exp $ +man/man5/proxsmtpd.conf.5 +man/man8/proxsmtpd.8 +sbin/proxsmtpd +share/examples/proxsmtp/add_header.sh +share/examples/proxsmtp/proxsmtpd.conf +share/examples/proxsmtp/spamassassin.sh +@dirrm share/examples/proxsmtp diff --git a/mail/proxsmtp/distinfo b/mail/proxsmtp/distinfo new file mode 100644 index 00000000000..dd0f6e3b738 --- /dev/null +++ b/mail/proxsmtp/distinfo @@ -0,0 +1,6 @@ +$NetBSD: distinfo,v 1.1.1.1 2004/12/02 04:08:18 jlam Exp $ + +SHA1 (proxsmtp-0.6.tar.gz) = 463398ce22bd0641bd1de8a7879886dbb7b2842b +Size (proxsmtp-0.6.tar.gz) = 151627 bytes +SHA1 (patch-aa) = 09bba87bf89e0f3a54b68fc77922052f88563579 +SHA1 (patch-ab) = bf38136bc4fd91319a2d5c3069fcc3b980950902 diff --git a/mail/proxsmtp/files/proxsmtpd.sh b/mail/proxsmtp/files/proxsmtpd.sh new file mode 100644 index 00000000000..7dc89bbff78 --- /dev/null +++ b/mail/proxsmtp/files/proxsmtpd.sh @@ -0,0 +1,72 @@ +#!@RCD_SCRIPTS_SHELL@ +# +# $NetBSD: proxsmtpd.sh,v 1.1.1.1 2004/12/02 04:08:18 jlam Exp $ +# +# PROVIDE: proxsmtpd +# REQUIRE: LOGIN +# BEFORE: mail +# KEYWORD: shutdown +# + +if [ -f /etc/rc.subr ]; then + . /etc/rc.subr +fi + +name="proxsmtpd" +rcvar=$name +command="@PREFIX@/sbin/${name}" + +start_precmd="proxsmtpd_prestart" +stop_postcmd="proxsmtpd_poststop" + +user="nobody" +tempdir="/tmp" +pidfile=/var/run/${name}.pid +conffile="@PKG_SYSCONFDIR@/${name}.conf" +if [ -f "${conffile}" ]; then + user=`@AWK@ 'BEGIN {r = "nobody"}; /^User:/ {r = $2}; END {print r}' ${conffile}` + tempdir=`@AWK@ 'BEGIN {r = "/tmp"}; /^TempDirectory:/ {r = $2}; END {print r}' ${conffile}` + + case ${tempdir} in + /tmp) ;; + *) pidfile="${tempdir}/${name}.pid" ;; + esac +fi + +command_args="-p ${pidfile}" + +proxsmtpd_prestart() +{ + case ${tempdir} in + /tmp) ;; + *) if [ ! -d "${tempdir}" ]; then + @MKDIR@ -p ${tempdir} + fi + @CHOWN@ -R ${user} ${tempdir} + @CHMOD@ -R 0700 ${tempdir} + ;; + esac + @TOUCH@ ${pidfile} + @CHOWN@ ${user} ${pidfile} +} + +proxsmtpd_poststop() +{ + @RM@ -f ${pidfile} + case ${tempdir} in + /tmp) ;; + *) @RMDIR@ -p ${tempdir} 2>/dev/null || @TRUE@ + esac +} + +if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then + load_rc_config $name + run_rc_command "$1" +else + if [ -f /etc/rc.conf ]; then + . /etc/rc.conf + fi + @ECHO@ -n " ${name}" + eval ${start_precmd} + ${command} ${proxsmtpd_flags} ${command_args} +fi diff --git a/mail/proxsmtp/patches/patch-aa b/mail/proxsmtp/patches/patch-aa new file mode 100644 index 00000000000..59a3381defa --- /dev/null +++ b/mail/proxsmtp/patches/patch-aa @@ -0,0 +1,13 @@ +$NetBSD: patch-aa,v 1.1.1.1 2004/12/02 04:08:18 jlam Exp $ + +--- common/sock_any.h.orig 2004-09-03 20:34:42.000000000 -0400 ++++ common/sock_any.h +@@ -57,7 +57,7 @@ struct sockaddr_any + struct sockaddr_in6 in6; + #endif + } s; +- size_t namelen; ++ socklen_t namelen; + }; + + #define SANY_ADDR(any) ((any).s.a) diff --git a/mail/proxsmtp/patches/patch-ab b/mail/proxsmtp/patches/patch-ab new file mode 100644 index 00000000000..cbd795e0fb9 --- /dev/null +++ b/mail/proxsmtp/patches/patch-ab @@ -0,0 +1,13 @@ +$NetBSD: patch-ab,v 1.1.1.1 2004/12/02 04:08:18 jlam Exp $ + +--- common/smtppass.c.orig 2004-10-30 14:27:33.000000000 -0400 ++++ common/smtppass.c +@@ -586,7 +586,7 @@ static spctx_t* init_thread(int fd) + g_unique_id++; + sp_unlock(); + +- sp_messagex(ctx, LOG_DEBUG, "processing %d on thread %x", fd, (int)pthread_self()); ++ sp_messagex(ctx, LOG_DEBUG, "processing %d on thread %p", fd, pthread_self()); + + /* Connect to the outgoing server ... */ + if(make_connections(ctx, fd) == -1) |