SOURCES: qmail-badrcptto.patch (NEW) - 1.02 from http://patch.be/q...
glen
glen at pld-linux.org
Tue Apr 11 11:12:51 CEST 2006
Author: glen Date: Tue Apr 11 09:12:51 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- 1.02 from http://patch.be/qmail/
---- Files affected:
SOURCES:
qmail-badrcptto.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/qmail-badrcptto.patch
diff -u /dev/null SOURCES/qmail-badrcptto.patch:1.1
--- /dev/null Tue Apr 11 11:12:51 2006
+++ SOURCES/qmail-badrcptto.patch Tue Apr 11 11:12:46 2006
@@ -0,0 +1,88 @@
+--- qmail-1.03-clean/Makefile Mon Jun 15 11:53:16 1998
++++ qmail-1.03/Makefile Fri Mar 28 13:44:38 2003
+@@ -1535,13 +1535,13 @@
+ load qmail-smtpd.o rcpthosts.o commands.o timeoutread.o \
+ timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o received.o \
+ date822fmt.o now.o qmail.o cdb.a fd.a wait.a datetime.a getln.a \
+-open.a sig.a case.a env.a stralloc.a alloc.a substdio.a error.a str.a \
++open.a sig.a case.a env.a stralloc.a alloc.a strerr.a substdio.a error.a str.a \
+ fs.a auto_qmail.o socket.lib
+ ./load qmail-smtpd rcpthosts.o commands.o timeoutread.o \
+ timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o \
+ received.o date822fmt.o now.o qmail.o cdb.a fd.a wait.a \
+ datetime.a getln.a open.a sig.a case.a env.a stralloc.a \
+- alloc.a substdio.a error.a str.a fs.a auto_qmail.o `cat \
++ alloc.a strerr.a substdio.a error.a str.a fs.a auto_qmail.o `cat \
+ socket.lib`
+
+ qmail-smtpd.0: \
+--- qmail-1.03-clean/qmail-smtpd.c Mon Jun 15 11:53:16 1998
++++ qmail-1.03/qmail-smtpd.c Fri Mar 28 13:46:05 2003
+@@ -23,6 +23,7 @@
+ #include "timeoutread.h"
+ #include "timeoutwrite.h"
+ #include "commands.h"
++#include "strerr.h"
+
+ #define MAXHOPS 100
+ unsigned int databytes = 0;
+@@ -50,6 +51,7 @@
+ 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_syntax() { out("555 syntax error (#5.5.4)\r\n"); }
+@@ -96,6 +98,9 @@
+ int bmfok = 0;
+ stralloc bmf = {0};
+ struct constmap mapbmf;
++int brtok = 0;
++stralloc brt = {0};
++struct constmap mapbrt;
+
+ void setup()
+ {
+@@ -116,6 +121,11 @@
+ 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 +218,17 @@
+ 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;
+@@ -258,6 +279,11 @@
+ }
+ else
+ if (!addrallowed()) { err_nogateway(); return; }
++ if (!env_get("RELAYCLIENT") && brtcheck()) {
++ strerr_warn4("qmail-smtpd: badrcptto: ",addr.s," at ",remoteip,0);
++ err_brt();
++ return;
++ }
+ if (!stralloc_cats(&rcptto,"T")) die_nomem();
+ if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
+ if (!stralloc_0(&rcptto)) die_nomem();
================================================================
More information about the pld-cvs-commit
mailing list