pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/mail/qmail Add revision 1.01 of Ward Vandewege's badrc...
details: https://anonhg.NetBSD.org/pkgsrc/rev/fed29e961e54
branches: trunk
changeset: 473757:fed29e961e54
user: schmonz <schmonz%pkgsrc.org@localhost>
date: Sat Apr 24 05:29:36 2004 +0000
description:
Add revision 1.01 of Ward Vandewege's badrcptto patch. With this
patch, qmail-smtpd will reject mail during the SMTP conversation
if a recipient is listed in control/badrcptto. This complements
control/badmailfrom as found in stock qmail. Requested by Nathan
Arthur.
Add an rc.d script for qmail-pop3d. It needs sysutils/checkpassword,
which is so tiny I've added the dependency even as I don't use
qmail-pop3d myself.
In the rc.d script for qmail-smtpd, require control/rcpthosts to
be present. This prevents accidental open relays.
Now that it's used for the path to checkpassword too, rename
LOCALBASE_UCSPI_TCP to LOCALBASE_NORMAL.
Convert to buildlink3.
Bump PKGREVISION.
diffstat:
mail/qmail/MESSAGE | 4 +-
mail/qmail/Makefile | 13 +++++---
mail/qmail/distinfo | 4 +-
mail/qmail/files/qmailpop3d.sh | 30 ++++++++++++++++++++
mail/qmail/files/qmailsmtpd.sh | 7 ++--
mail/qmail/patches/patch-an | 62 +++++++++++++++++++++++++++++++++++++----
6 files changed, 102 insertions(+), 18 deletions(-)
diffs (244 lines):
diff -r 51739f9aef56 -r fed29e961e54 mail/qmail/MESSAGE
--- a/mail/qmail/MESSAGE Sat Apr 24 04:56:17 2004 +0000
+++ b/mail/qmail/MESSAGE Sat Apr 24 05:29:36 2004 +0000
@@ -1,12 +1,12 @@
===========================================================================
-$NetBSD: MESSAGE,v 1.6 2004/04/10 05:53:31 schmonz Exp $
+$NetBSD: MESSAGE,v 1.7 2004/04/24 05:29:36 schmonz Exp $
To be able to view manpages either add "${QMAILDIR}/man/" to the
_default line in /etc/man.conf or specify this directory in
MANPATH variable in your environment.
To start qmail at startup, set qmail=YES in /etc/rc.conf.
-
+ To start qmail-pop3d at startup, set qmailpop3d=YES in /etc/rc.conf.
To start qmail-smtpd at startup, set qmailsmtpd=YES in /etc/rc.conf.
===========================================================================
diff -r 51739f9aef56 -r fed29e961e54 mail/qmail/Makefile
--- a/mail/qmail/Makefile Sat Apr 24 04:56:17 2004 +0000
+++ b/mail/qmail/Makefile Sat Apr 24 05:29:36 2004 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.22 2004/04/10 14:15:24 schmonz Exp $
+# $NetBSD: Makefile,v 1.23 2004/04/24 05:29:36 schmonz Exp $
#
DISTNAME= qmail-1.03
-PKGREVISION= 5
+PKGREVISION= 6
CATEGORIES= mail
MASTER_SITES= http://cr.yp.to/software/ \
ftp://ftp.ntnu.no/pub/unix/mail/qmail/ \
@@ -13,9 +13,12 @@
HOMEPAGE= http://www.qmail.org/
COMMENT= Secure, reliable, efficient, simple, and fast MTA for UNIX systems
+DEPENDS+= checkpassword-[0-9]*:../../sysutils/checkpassword
DEPENDS+= qmail-users>=1.0:../../mail/qmail-users
DEPENDS+= ucspi-tcp-[0-9]*:../../net/ucspi-tcp
+USE_BUILDLINK3= yes
+
ALL_TARGET= it man
INSTALL_TARGET= setup check
@@ -29,11 +32,11 @@
DEINSTALL_EXTRA_TMPL+= ${.CURDIR}/DEINSTALL
OWN_DIRS+= ${QMAILDIR}
-EVAL_PREFIX+= LOCALBASE_UCSPI_TCP=ucspi-tcp
+EVAL_PREFIX+= LOCALBASE_NORMAL=ucspi-tcp
FILES_SUBST+= QMAILDIR=${QMAILDIR}
-FILES_SUBST+= LOCALBASE_UCSPI_TCP=${LOCALBASE_UCSPI_TCP}
-RCD_SCRIPTS= qmail qmailsmtpd
+FILES_SUBST+= LOCALBASE_NORMAL=${LOCALBASE_NORMAL}
+RCD_SCRIPTS= qmail qmailsmtpd qmailpop3d
RCD_SCRIPTS_EXAMPLEDIR= ${QMAILDIR}/etc/rc.d
.include "../../mk/bsd.prefs.mk"
diff -r 51739f9aef56 -r fed29e961e54 mail/qmail/distinfo
--- a/mail/qmail/distinfo Sat Apr 24 04:56:17 2004 +0000
+++ b/mail/qmail/distinfo Sat Apr 24 05:29:36 2004 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.4 2004/04/10 05:30:06 schmonz Exp $
+$NetBSD: distinfo,v 1.5 2004/04/24 05:29:36 schmonz Exp $
SHA1 (qmail-1.03.tar.gz) = 18fb960481291a0503e93a94df3f6094edb7f27a
Size (qmail-1.03.tar.gz) = 220668 bytes
@@ -15,7 +15,7 @@
SHA1 (patch-ak) = d1e88006f04874df6c1896b08bbdfb4e5d67f654
SHA1 (patch-al) = 20a8bb4d44477522135762219c4aaeebddfd6085
SHA1 (patch-am) = fd1d09686dcdbb58b7a45c114aa56d0b1360035b
-SHA1 (patch-an) = de2bb294c742ee4b512634f37553bdb79ea7ffb1
+SHA1 (patch-an) = 352fefafcf726fa9b5ae69822519d4c976032da2
SHA1 (patch-ao) = 63176ba524913c6e693de7460d25016a10a438f8
SHA1 (patch-ap) = de2d4d409c5e588e1cf9c6ca2cd966eeef022a55
SHA1 (patch-aq) = 2e5f0a4870b13ff60f79edf5dc58eff783fd5bea
diff -r 51739f9aef56 -r fed29e961e54 mail/qmail/files/qmailpop3d.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/qmail/files/qmailpop3d.sh Sat Apr 24 05:29:36 2004 +0000
@@ -0,0 +1,30 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: qmailpop3d.sh,v 1.1 2004/04/24 05:29:36 schmonz Exp $
+#
+
+# PROVIDE: mail
+# REQUIRE: qmail
+
+. /etc/rc.subr
+
+name="qmailpop3d"
+rcvar=${name}
+required_files="@QMAILDIR@/control/me"
+command="@LOCALBASE_NORMAL@/bin/tcpserver"
+procname=${name}
+start_precmd="qmailpop3d_precmd"
+
+if [ -z "$qmailpop3d_flags" ]; then
+ qmailpop3d_flags="-v -H -R -l 0"
+fi
+
+qmailpop3d_precmd()
+{
+ command="@SETENV@ - @LOCALBASE_NORMAL@/bin/argv0 @LOCALBASE_NORMAL@/bin/tcpserver $name $qmailpop3d_flags 0 110 @QMAILDIR@/bin/qmail-popup `@CAT@ @QMAILDIR@/control/me`
@LOCALBASE_NORMAL@/bin/checkpassword @QMAILDIR@/bin/qmail-pop3d Maildir 2>&1 | @QMAILDIR@/bin/splogger pop3d 3"
+ command_args="&"
+ rc_flags=""
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff -r 51739f9aef56 -r fed29e961e54 mail/qmail/files/qmailsmtpd.sh
--- a/mail/qmail/files/qmailsmtpd.sh Sat Apr 24 04:56:17 2004 +0000
+++ b/mail/qmail/files/qmailsmtpd.sh Sat Apr 24 05:29:36 2004 +0000
@@ -1,6 +1,6 @@
#!@RCD_SCRIPTS_SHELL@
#
-# $NetBSD: qmailsmtpd.sh,v 1.1 2004/04/10 05:30:06 schmonz Exp $
+# $NetBSD: qmailsmtpd.sh,v 1.2 2004/04/24 05:29:36 schmonz Exp $
#
# PROVIDE: mail
@@ -10,7 +10,8 @@
name="qmailsmtpd"
rcvar=${name}
-command="@LOCALBASE_UCSPI_TCP@/bin/tcpserver"
+required_files="@QMAILDIR@/control/rcpthosts"
+command="@LOCALBASE_NORMAL@/bin/tcpserver"
procname=${name}
start_precmd="qmailsmtpd_precmd"
@@ -20,7 +21,7 @@
qmailsmtpd_precmd()
{
- command="@SETENV@ - @LOCALBASE_UCSPI_TCP@/bin/argv0 @LOCALBASE_UCSPI_TCP@/bin/tcpserver $name $qmailsmtpd_flags -u `@ID@ -u qmaild` -g `@ID@ -g qmaild` 0 smtp @QMAILDIR@/bin/qmail-smtpd 2>&1
| @QMAILDIR@/bin/splogger smtpd 3"
+ command="@SETENV@ - @LOCALBASE_NORMAL@/bin/argv0 @LOCALBASE_NORMAL@/bin/tcpserver $name $qmailsmtpd_flags -u `@ID@ -u qmaild` -g `@ID@ -g qmaild` 0 25 @QMAILDIR@/bin/qmail-smtpd 2>&1 |
@QMAILDIR@/bin/splogger smtpd 3"
command_args="&"
rc_flags=""
}
diff -r 51739f9aef56 -r fed29e961e54 mail/qmail/patches/patch-an
--- a/mail/qmail/patches/patch-an Sat Apr 24 04:56:17 2004 +0000
+++ b/mail/qmail/patches/patch-an Sat Apr 24 05:29:36 2004 +0000
@@ -1,10 +1,12 @@
-$NetBSD: patch-an,v 1.1 2004/04/10 05:30:06 schmonz Exp $
+$NetBSD: patch-an,v 1.2 2004/04/24 05:29:36 schmonz Exp $
--- qmail-smtpd.c.orig 1998-06-15 06:53:16.000000000 -0400
+++ qmail-smtpd.c
-@@ -51,12 +51,12 @@ void straynewline() { out("451 See http:
+@@ -50,13 +50,14 @@ void die_ipme() { out("421 unable to fig
+ void straynewline() { out("451 See http://pobox.com/~djb/docs/smtplf.html.\r\n"); flush(); _exit(1); }
void err_bmf() { out("553 sorry, your envelope sender is in my badmailfrom list (#5.7.1)\r\n"); }
++void err_brt() { out("553 sorry, this recipient is in my badrecipientto list (#5.7.1)\r\n"); }
void err_nogateway() { out("553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)\r\n"); }
-void err_unimpl() { out("502 unimplemented (#5.5.1)\r\n"); }
+void err_unimpl(arg) char *arg; { out("502 unimplemented (#5.5.1)\r\n"); }
@@ -18,7 +20,7 @@
void err_qqt() { out("451 qqt failure (#4.3.0)\r\n"); }
-@@ -67,11 +67,11 @@ void smtp_greet(code) char *code;
+@@ -67,11 +68,11 @@ void smtp_greet(code) char *code;
substdio_puts(&ssout,code);
substdio_put(&ssout,greeting.s,greeting.len);
}
@@ -33,7 +35,47 @@
{
smtp_greet("221 "); out("\r\n"); flush(); _exit(0);
}
-@@ -232,7 +232,7 @@ void smtp_ehlo(arg) char *arg;
+@@ -96,6 +97,9 @@ stralloc liphost = {0};
+ int bmfok = 0;
+ stralloc bmf = {0};
+ struct constmap mapbmf;
++int brtok = 0;
++stralloc brt = {0};
++struct constmap mapbrt;
+
+ void setup()
+ {
+@@ -116,6 +120,11 @@ void setup()
+ if (bmfok == -1) die_control();
+ if (bmfok)
+ if (!constmap_init(&mapbmf,bmf.s,bmf.len,0)) die_nomem();
++
++ brtok = control_readfile(&brt,"control/badrcptto",0);
++ if (brtok == -1) die_control();
++ if (brtok)
++ if (!constmap_init(&mapbrt,brt.s,brt.len,0)) die_nomem();
+
+ if (control_readint(&databytes,"control/databytes") == -1) die_control();
+ x = env_get("DATABYTES");
+@@ -208,6 +217,17 @@ int bmfcheck()
+ return 0;
+ }
+
++int brtcheck()
++{
++ int j;
++ if (!brtok) return 0;
++ if (constmap(&mapbrt,addr.s,addr.len - 1)) return 1;
++ j = byte_rchr(addr.s,addr.len,'@');
++ if (j < addr.len)
++ if (constmap(&mapbrt,addr.s + j,addr.len - j - 1)) return 1;
++ return 0;
++}
++
+ int addrallowed()
+ {
+ int r;
+@@ -232,7 +252,7 @@ void smtp_ehlo(arg) char *arg;
smtp_greet("250-"); out("\r\n250-PIPELINING\r\n250 8BITMIME\r\n");
seenmail = 0; dohelo(arg);
}
@@ -42,7 +84,15 @@
{
seenmail = 0;
out("250 flushed\r\n");
-@@ -316,8 +316,8 @@ int *hops;
+@@ -258,6 +278,7 @@ void smtp_rcpt(arg) char *arg; {
+ }
+ else
+ if (!addrallowed()) { err_nogateway(); return; }
++ if (!env_get("RELAYCLIENT") && brtcheck()) { err_brt(); return; }
+ if (!stralloc_cats(&rcptto,"T")) die_nomem();
+ if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
+ if (!stralloc_0(&rcptto)) die_nomem();
+@@ -316,8 +337,8 @@ int *hops;
if (flagmaybex) if (pos == 7) ++*hops;
if (pos < 2) if (ch != "\r\n"[pos]) flagmaybey = 0;
if (flagmaybey) if (pos == 1) flaginheader = 0;
@@ -52,7 +102,7 @@
if (ch == '\n') { pos = 0; flagmaybex = flagmaybey = flagmaybez = 1; }
}
switch(state) {
-@@ -365,7 +365,7 @@ void acceptmessage(qp) unsigned long qp;
+@@ -365,7 +386,7 @@ void acceptmessage(qp) unsigned long qp;
out("\r\n");
}
Home |
Main Index |
Thread Index |
Old Index