summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreric <eric@openbsd.org>2016-02-03 11:16:19 +0000
committereric <eric@openbsd.org>2016-02-03 11:16:19 +0000
commiteb1246b1d11f4c69a73c37962d14861036be74c7 (patch)
treee528b0701482827896b4d422c09075c7813bd1c9
parentWhen a filter rejects a message content, report immediatly to the (diff)
downloadwireguard-openbsd-eb1246b1d11f4c69a73c37962d14861036be74c7.tar.xz
wireguard-openbsd-eb1246b1d11f4c69a73c37962d14861036be74c7.zip
tell filters to rollback the current transaction if MAIL or EOM fails
ok gilles@ jung@
-rw-r--r--usr.sbin/smtpd/smtp_session.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.sbin/smtpd/smtp_session.c b/usr.sbin/smtpd/smtp_session.c
index 9152e1ddbb1..c8f9d884910 100644
--- a/usr.sbin/smtpd/smtp_session.c
+++ b/usr.sbin/smtpd/smtp_session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtp_session.c,v 1.264 2015/12/28 22:08:30 jung Exp $ */
+/* $OpenBSD: smtp_session.c,v 1.265 2016/02/03 11:16:19 eric Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@poolp.org>
@@ -1091,6 +1091,7 @@ smtp_filter_response(uint64_t id, int query, int status, uint32_t code,
case QUERY_MAIL:
if (status != FILTER_OK) {
+ smtp_filter_rollback(s);
code = code ? code : 530;
line = line ? line : "Sender rejected";
smtp_reply(s, "%d %s", code, line);
@@ -1149,6 +1150,7 @@ smtp_filter_response(uint64_t id, int query, int status, uint32_t code,
case QUERY_EOM:
if (status != FILTER_OK) {
+ smtp_filter_rollback(s);
code = code ? code : 530;
line = line ? line : "Message rejected";
smtp_reply(s, "%d %s", code, line);