From 77b231c638775f0ab9cf62e13a8a0854e1172392 Mon Sep 17 00:00:00 2001 From: Dirk Meyer Date: Sun, 16 Sep 2001 09:43:13 +0000 Subject: Added new functionality: SMTP_RELAY aftersucessfull POP3 authentification. Option: SMPT_AFTER_POP=yes Documentation and popauth.m4 is included in this port. PR: 29906 --- mail/popa3d/Makefile | 42 +++++++++++++++++++++++++--- mail/popa3d/distinfo | 1 + mail/popa3d/files.smtp/POPAUTH | 49 +++++++++++++++++++++++++++++++++ mail/popa3d/files.smtp/patch-aa | 37 +++++++++++++++++++++++++ mail/popa3d/files.smtp/patch-ab | 23 ++++++++++++++++ mail/popa3d/files.smtp/patch-pop_auth.c | 11 ++++++++ mail/popa3d/files.smtp/patch-pop_pbs.c | 11 ++++++++ mail/popa3d/files.smtp/patch-pop_root.c | 18 ++++++++++++ mail/popa3d/files.smtp/popauth.m4 | 47 +++++++++++++++++++++++++++++++ mail/popa3d/pkg-plist | 6 ++-- 10 files changed, 238 insertions(+), 7 deletions(-) create mode 100644 mail/popa3d/files.smtp/POPAUTH create mode 100644 mail/popa3d/files.smtp/patch-aa create mode 100644 mail/popa3d/files.smtp/patch-ab create mode 100644 mail/popa3d/files.smtp/patch-pop_auth.c create mode 100644 mail/popa3d/files.smtp/patch-pop_pbs.c create mode 100644 mail/popa3d/files.smtp/patch-pop_root.c create mode 100644 mail/popa3d/files.smtp/popauth.m4 diff --git a/mail/popa3d/Makefile b/mail/popa3d/Makefile index 4e040d0f2fec..a2c7e3f22505 100644 --- a/mail/popa3d/Makefile +++ b/mail/popa3d/Makefile @@ -12,25 +12,59 @@ MASTER_SITES= http://www.openwall.com/popa3d/ \ ftp://ftp.openwall.com/popa3d/ \ ftp://ftp.dataforce.net/pub/solar/ \ ftp://ftp.false.com/pub/security/popa3d/ +.if defined(SMTP_AFTER_POP3) +PKGNAMESUFFIX?= -before-sendmail +.endif + +.if defined(SMTP_AFTER_POP3) +PATCH_SITES= http://www.openwall.com/popa3d/contrib/ +PATCHFILES= popa3d-0.4-before-sendmail.tar.gz +PATCH_DIST_STRIP= -p1 +.endif MAINTAINER= gonza@techline.ru ALL_TARGET= popa3d +.if defined(SMTP_AFTER_POP3) +PATCHDIR= ${MASTERDIR}/files.smtp +PLIST= ${WRKDIR}/.PLIST.more + +pre-configure: + @${ECHO} "%%PORTDOCS%%share/doc/popa3d/POPAUTH" >${PLIST} + @${CAT} ${PKGDIR}/pkg-plist >>${PLIST} + @${ECHO} "share/sendmail/cf/hack/popauth.m4" >>${PLIST} + +post-patch: + @${PERL5} -pi -e "s=LOG_MAIL=LOG_DAEMON=" ${WRKSRC}/params.h + @${PERL5} -pi -e "s=db1/db.h=db.h=" ${WRKSRC}/pop_root.c +.endif + +pre-install: + @ ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL + do-install: ${INSTALL} ${COPY} -o root -g wheel -m 500 \ ${WRKSRC}/popa3d ${PREFIX}/libexec/popa3d - +.if defined(SMTP_AFTER_POP3) + ${INSTALL_DATA} ${PATCHDIR}/popauth.m4 ${CFDIR}/hack +.endif .if !defined(NOPORTDOCS) ${MKDIR} ${PREFIX}/share/doc/popa3d ${INSTALL_MAN} ${WRKSRC}/DESIGN ${PREFIX}/share/doc/popa3d ${INSTALL_MAN} ${WRKSRC}/COPYING ${PREFIX}/share/doc/popa3d +.if defined(SMTP_AFTER_POP3) + ${INSTALL_DATA} ${PATCHDIR}/POPAUTH ${PREFIX}/share/doc/popa3d +.endif .endif - -pre-install: - @ ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL post-install: @ ${CAT} ${PKGMESSAGE} .include + +.if exists(${DESTDIR}/${LOCALBASE}/share/sendmail/cf/mailer/uucp.m4) +CFDIR= ${DESTDIR}${LOCALBASE}/share/sendmail/cf +.else +CFDIR= ${DESTDIR}/usr/share/sendmail/cf +.endif diff --git a/mail/popa3d/distinfo b/mail/popa3d/distinfo index e530600c94fc..aff3cb035e42 100644 --- a/mail/popa3d/distinfo +++ b/mail/popa3d/distinfo @@ -1 +1,2 @@ MD5 (popa3d-0.4.tar.gz) = 4ce2ed209abeaeaae7724d8d24bb7dbf +MD5 (popa3d-0.4-before-sendmail.tar.gz) = 8e1aed8c86e1df777eee116667ad9d54 diff --git a/mail/popa3d/files.smtp/POPAUTH b/mail/popa3d/files.smtp/POPAUTH new file mode 100644 index 000000000000..abb368505724 --- /dev/null +++ b/mail/popa3d/files.smtp/POPAUTH @@ -0,0 +1,49 @@ + popa3d patch for POP-before-SMTP and SMTP-after-POP + + Garry Glendown / Dec. 12th 2000 + +On the 'net there are a couple of solutions to allow for POP-before-SMTP +authentication in order to allow for relaying of mails. Anyway, the +solutions I found didn't really apeal to me, so I hacked popa3d a bit, +which we already used on one of our machines to serve mail to dialup +customers. + + Prerequisites + +This patch supplies data to sendmail to allow for certain IPs to use it +as a relaying host. In order to use with your sendmail installation, get +the popauth-hack (http://www.sendmail.org/~ca/email/rules/popauth.m4) +and install it by adding "HACK(`popauth')" to you .mc-file. + + Installing + +The patch - enabled through the POPB4SMTP-define in the Makefile - +accesses the file "/etc/mail/popauth.db" (create with "makemap hash +/etc/mail/popauth + #include ++#include + #include +-#include + #include + + char addr_buf[256]; diff --git a/mail/popa3d/files.smtp/patch-pop_root.c b/mail/popa3d/files.smtp/patch-pop_root.c new file mode 100644 index 000000000000..cdc98a60e1f5 --- /dev/null +++ b/mail/popa3d/files.smtp/patch-pop_root.c @@ -0,0 +1,18 @@ +--- pop_root.c.neu.orig Mon Jul 16 11:55:05 2001 ++++ pop_root.c Tue Jul 17 11:45:22 2001 +@@ -210,6 +210,7 @@ + sem=sem_attach(0x50413453); + sem_enter(sem); + db=dbopen("/etc/mail/popauth.db",O_RDWR,0664,DB_HASH,0 ); ++ if ( db != NULL ) { + key.data=client_addr(1); + key.size=strlen(key.data); + sprintf(ts,"%d",(int)time(0)); +@@ -233,6 +234,7 @@ + ret=db->seq(db,&key,&data,R_NEXT); + } + db->close(db); ++ } + sem_leave(sem); + #endif + diff --git a/mail/popa3d/files.smtp/popauth.m4 b/mail/popa3d/files.smtp/popauth.m4 new file mode 100644 index 000000000000..2520978ad904 --- /dev/null +++ b/mail/popa3d/files.smtp/popauth.m4 @@ -0,0 +1,47 @@ +divert(-1) +# +# Copyright (c) 2000 Claus Assmann +# +# In short: you can do whatever you want with this, but don't blame me! +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# +# +VERSIONID(`$Id: popauth.m4,v 1.5 2000/10/19 17:47:53 ca Exp $') + +LOCAL_CONFIG +ifdef(`DATABASE_MAP_TYPE', `', `define(`DATABASE_MAP_TYPE', `hash')') +Kpopauth ifelse(defn(`_ARG_'), `', + `DATABASE_MAP_TYPE -a /etc/mail/popauth', + `_ARG_') +ifdef(`CF_LEVEL', `dnl has been introduced in 8.10 +dnl this can be used to add a tag to entries in the map +dnl to restrict the access +ifdef(`POP_B4_SMTP_TAG',, `define(`POP_B4_SMTP_TAG', `POP:')')dnl +ifdef(`POP_TO', `dnl +ifdef(`_ARITH_MAP_', `', `dnl +define(`_ARITH_MAP_', `1')dnl +Karith arith') +')', `dnl +define(`POP_B4_SMTP_TAG', `')dnl +')dnl +LOCAL_RULESETS +SLocal_check_rcpt +R$* $: $(popauth `'$&{client_addr} $: $) +R $@ NoPopAuth +ifdef(`POP_TO', `dnl +R$+ $: $(arith - $@ $1 $@ $&t $) +R$+ $: $(arith l $@ $1 $@ POP_TO $) +RTRUE $# OK', ` +R$* $# OK') diff --git a/mail/popa3d/pkg-plist b/mail/popa3d/pkg-plist index 89792500cea3..0567735d177d 100644 --- a/mail/popa3d/pkg-plist +++ b/mail/popa3d/pkg-plist @@ -1,5 +1,5 @@ @comment $FreeBSD$ libexec/popa3d -share/doc/popa3d/DESIGN -share/doc/popa3d/COPYING -@dirrm share/doc/popa3d +%%PORTDOCS%%share/doc/popa3d/DESIGN +%%PORTDOCS%%share/doc/popa3d/COPYING +%%PORTDOCS%%@dirrm share/doc/popa3d -- cgit v1.2.3