Mercurial > dovecot > core-2.2
changeset 17915:10d11d9c0c98
lda, lmtp: Use mail_deliver_context.tempfail_error first if it exists (instead of storage error).
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 08 Oct 2014 22:10:34 +0300 |
parents | f0015ab0efb1 |
children | 90fbf199ebda |
files | src/lda/main.c src/lmtp/commands.c |
diffstat | 2 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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");
--- 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");