dovecot-2.2: lda, lmtp: Use mail_deliver_context.tempfail_error ...

dovecot at dovecot.org dovecot at dovecot.org
Wed Oct 8 19:11:11 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/10d11d9c0c98
changeset: 17915:10d11d9c0c98
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Oct 08 22:10:34 2014 +0300
description:
lda, lmtp: Use mail_deliver_context.tempfail_error first if it exists (instead of storage error).

diffstat:

 src/lda/main.c      |  6 +++---
 src/lmtp/commands.c |  8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diffs (43 lines):

diff -r f0015ab0efb1 -r 10d11d9c0c98 src/lda/main.c
--- a/src/lda/main.c	Wed Oct 08 16:28:40 2014 +0300
+++ b/src/lda/main.c	Wed Oct 08 22:10:34 2014 +0300
@@ -435,11 +435,11 @@
 	lda_set_dest_addr(&ctx, user, destaddr_source);
 
 	if (mail_deliver(&ctx, &storage) < 0) {
-		if (storage != NULL) {
-			errstr = mail_storage_get_last_error(storage, &error);
-		} else if (ctx.tempfail_error != NULL) {
+		if (ctx.tempfail_error != NULL) {
 			errstr = ctx.tempfail_error;
 			error = MAIL_ERROR_TEMP;
+		} else if (storage != NULL) {
+			errstr = mail_storage_get_last_error(storage, &error);
 		} else {
 			/* This shouldn't happen */
 			i_error("BUG: Saving failed to unknown storage");
diff -r f0015ab0efb1 -r 10d11d9c0c98 src/lmtp/commands.c
--- a/src/lmtp/commands.c	Wed Oct 08 16:28:40 2014 +0300
+++ b/src/lmtp/commands.c	Wed Oct 08 22:10:34 2014 +0300
@@ -694,6 +694,10 @@
 		client_send_line(client, "250 2.0.0 <%s> %s Saved",
 				 rcpt->address, client->state.session_id);
 		ret = 0;
+	} else if (dctx.tempfail_error != NULL) {
+		client_send_line(client, "451 4.2.0 <%s> %s",
+				 rcpt->address, dctx.tempfail_error);
+		ret = -1;
 	} else if (storage != NULL) {
 		error = mail_storage_get_last_error(storage, &mail_error);
 		if (mail_error == MAIL_ERROR_NOQUOTA) {
@@ -706,10 +710,6 @@
 					 rcpt->address, error);
 		}
 		ret = -1;
-	} else if (dctx.tempfail_error != NULL) {
-		client_send_line(client, "451 4.2.0 <%s> %s",
-				 rcpt->address, dctx.tempfail_error);
-		ret = -1;
 	} else {
 		/* This shouldn't happen */
 		i_error("BUG: Saving failed to unknown storage");


More information about the dovecot-cvs mailing list