summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacek Masiulaniec <jacekm@cvs.openbsd.org>2009-09-04 18:50:44 +0000
committerJacek Masiulaniec <jacekm@cvs.openbsd.org>2009-09-04 18:50:44 +0000
commit79331488de4f35cbcc9704337c87f4e0740d6de4 (patch)
treecc8a3367398f9b575f168513fb430d4e6907e797
parent077a146d0300804ea2c4ad1cc3b9eade40806eb5 (diff)
Fix scheduling of bounces that could not be delivered.
ok gilles@
-rw-r--r--usr.sbin/smtpd/bounce.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/smtpd/bounce.c b/usr.sbin/smtpd/bounce.c
index 9e8e8b0b1c4..968bdd82e88 100644
--- a/usr.sbin/smtpd/bounce.c
+++ b/usr.sbin/smtpd/bounce.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bounce.c,v 1.6 2009/08/27 11:37:30 jacekm Exp $ */
+/* $OpenBSD: bounce.c,v 1.7 2009/09/04 18:50:43 jacekm Exp $ */
/*
* Copyright (c) 2009 Gilles Chehade <gilles@openbsd.org>
@@ -138,7 +138,11 @@ bounce_event(int fd, short event, void *p)
break;
case CLIENT_ERROR:
message_set_errormsg(&cc->m, "SMTP error: %s", ep);
- message_reset_flags(&cc->m);
+ if (*ep == '5')
+ cc->m.status = S_MESSAGE_PERMFAILURE;
+ else
+ cc->m.status = S_MESSAGE_TEMPFAILURE;
+ queue_message_update(&cc->m);
break;
}
client_close(cc->sp);