1df83713dSchristosIndex: dist/src/smtpd/pfilter.c 2df83713dSchristos=================================================================== 3df83713dSchristosRCS file: dist/src/smtpd/pfilter.c 4df83713dSchristosdiff -N dist/src/smtpd/pfilter.c 5df83713dSchristos--- /dev/null 1 Jan 1970 00:00:00 -0000 6df83713dSchristos+++ dist/src/smtpd/pfilter.c 1 Feb 2018 03:29:09 -0000 7df83713dSchristos@@ -0,0 +1,19 @@ 8df83713dSchristos+#include "pfilter.h" 9df83713dSchristos+#include <stdio.h> /* for NULL */ 10df83713dSchristos+#include <blocklist.h> 11df83713dSchristos+ 12df83713dSchristos+static struct blocklist *blstate; 13df83713dSchristos+ 14df83713dSchristos+void 15df83713dSchristos+pfilter_notify(int a, int fd) 16df83713dSchristos+{ 17df83713dSchristos+ if (blstate == NULL) 18df83713dSchristos+ blstate = blocklist_open(); 19df83713dSchristos+ if (blstate == NULL) 20df83713dSchristos+ return; 21df83713dSchristos+ (void)blocklist_r(blstate, a, fd, "smtpd"); 22df83713dSchristos+ if (a == 0) { 23df83713dSchristos+ blocklist_close(blstate); 24df83713dSchristos+ blstate = NULL; 25df83713dSchristos+ } 26df83713dSchristos+} 27df83713dSchristosIndex: dist/src/smtpd/pfilter.h 28df83713dSchristos=================================================================== 29df83713dSchristosRCS file: dist/src/smtpd/pfilter.h 30df83713dSchristosdiff -N dist/src/smtpd/pfilter.h 31df83713dSchristos--- /dev/null 1 Jan 1970 00:00:00 -0000 32df83713dSchristos+++ dist/src/smtpd/pfilter.h 1 Feb 2018 03:29:09 -0000 33df83713dSchristos@@ -0,0 +1,2 @@ 34df83713dSchristos+ 35df83713dSchristos+void pfilter_notify(int, int); 36df83713dSchristosIndex: dist/src/smtpd/smtpd.c 37df83713dSchristos=================================================================== 38df83713dSchristosRCS file: /cvsroot/src/external/ibm-public/postfix/dist/src/smtpd/smtpd.c,v 39df83713dSchristosretrieving revision 1.14 40df83713dSchristosdiff -u -r1.14 smtpd.c 41df83713dSchristos--- dist/src/smtpd/smtpd.c 14 Feb 2017 01:16:48 -0000 1.14 42df83713dSchristos+++ dist/src/smtpd/smtpd.c 1 Feb 2018 03:29:09 -0000 43df83713dSchristos@@ -1197,6 +1197,8 @@ 44df83713dSchristos #include <smtpd_milter.h> 45df83713dSchristos #include <smtpd_expand.h> 46df83713dSchristos 47df83713dSchristos+#include "pfilter.h" 48df83713dSchristos+ 49df83713dSchristos /* 50df83713dSchristos * Tunable parameters. Make sure that there is some bound on the length of 51df83713dSchristos * an SMTP command, so that the mail system stays in control even when a 52df83713dSchristos@@ -5048,6 +5050,7 @@ 53df83713dSchristos if (state->error_count >= var_smtpd_hard_erlim) { 54df83713dSchristos state->reason = REASON_ERROR_LIMIT; 55df83713dSchristos state->error_mask |= MAIL_ERROR_PROTOCOL; 56df83713dSchristos+ pfilter_notify(1, vstream_fileno(state->client)); 57df83713dSchristos smtpd_chat_reply(state, "421 4.7.0 %s Error: too many errors", 58df83713dSchristos var_myhostname); 59df83713dSchristos break; 60df83713dSchristosIndex: libexec/smtpd/Makefile 61df83713dSchristos=================================================================== 62df83713dSchristosRCS file: /cvsroot/src/external/ibm-public/postfix/libexec/smtpd/Makefile,v 63df83713dSchristosretrieving revision 1.6 64df83713dSchristosdiff -u -r1.6 Makefile 65df83713dSchristos--- libexec/smtpd/Makefile 21 May 2017 15:28:40 -0000 1.6 66df83713dSchristos+++ libexec/smtpd/Makefile 1 Feb 2018 03:29:09 -0000 67df83713dSchristos@@ -13,11 +13,14 @@ 68df83713dSchristos SRCS= smtpd.c smtpd_token.c smtpd_check.c smtpd_chat.c smtpd_state.c \ 69df83713dSchristos smtpd_peer.c smtpd_sasl_proto.c smtpd_sasl_glue.c smtpd_proxy.c \ 70df83713dSchristos smtpd_xforward.c smtpd_dsn_fix.c smtpd_milter.c smtpd_resolve.c \ 71df83713dSchristos- smtpd_expand.c smtpd_haproxy.c 72df83713dSchristos+ smtpd_expand.c smtpd_haproxy.c pfilter.c 73df83713dSchristos 74df83713dSchristos DPADD+= ${LIBPMASTER} ${LIBPMILTER} ${LIBPGLOBAL} ${LIBPDNS} ${LIBPXSASL} 75df83713dSchristos LDADD+= ${LIBPMASTER} ${LIBPMILTER} ${LIBPGLOBAL} ${LIBPDNS} ${LIBPXSASL} 76df83713dSchristos 77a51582d4Schristos+DPADD+= ${LIBBLOCKLIST} 78df83713dSchristos+LDADD+= -lblocklist 79df83713dSchristos+ 80df83713dSchristos DPADD+= ${LIBPTLS} ${LIBSSL} ${LIBCRYPTO} 81df83713dSchristos LDADD+= ${LIBPTLS} -lssl -lcrypto 82df83713dSchristos 83*ca734aa1SchristosIndex: dist/src/smtpd/smtpd.c 84*ca734aa1Schristos=================================================================== 85*ca734aa1SchristosRCS file: /cvsroot/src/external/ibm-public/postfix/dist/src/smtpd/smtpd.c,v 86*ca734aa1Schristosretrieving revision 1.17 87*ca734aa1Schristosdiff -u -u -r1.17 smtpd.c 88*ca734aa1Schristos--- dist/src/smtpd/smtpd.c 18 Mar 2020 19:05:20 -0000 1.17 89*ca734aa1Schristos+++ dist/src/smtpd/smtpd.c 25 Sep 2020 12:51:52 -0000 90*ca734aa1Schristos@@ -5795,6 +5795,8 @@ 91*ca734aa1Schristos || strcmp(state->reason, REASON_LOST_CONNECTION)) { 92*ca734aa1Schristos msg_info("%s after %s from %s", 93*ca734aa1Schristos state->reason, state->where, state->namaddr); 94*ca734aa1Schristos+ if (strcmp(state->where, SMTPD_CMD_AUTH) == 0) 95*ca734aa1Schristos+ pfilter_notify(1, vstream_fileno(state->client)); 96*ca734aa1Schristos } 97*ca734aa1Schristos } 98*ca734aa1Schristos 99