From 254cae66e7bd6dd5ab825d8f172c1fdad42129ca Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Wed, 31 Jan 2018 10:27:54 +0100 Subject: [PATCH] lmtp: local: Use recipient index in lmtp_local_rcpt_reply_overquota(). When used during the DATA command, it should send a reply for the correct recipient. During the RCPT command there is only one reply due. Added assert that checks this. --- src/lmtp/lmtp-local.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c index d20bac8c58..0c051cff50 100644 --- a/src/lmtp/lmtp-local.c +++ b/src/lmtp/lmtp-local.c @@ -135,15 +135,18 @@ lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt, const char *error) { struct smtp_address *address = rcpt->rcpt.path; + unsigned int rcpt_idx = rcpt->rcpt.index; struct lda_settings *lda_set = mail_storage_service_user_get_set(rcpt->service_user)[2]; + i_assert(rcpt_idx == 0 || rcpt->rcpt.rcpt_cmd == NULL); + if (lda_set->quota_full_tempfail) { - smtp_server_reply(cmd, 452, "4.2.2", "<%s> %s", - smtp_address_encode(address), error); + smtp_server_reply_index(cmd, rcpt_idx, 452, "4.2.2", "<%s> %s", + smtp_address_encode(address), error); } else { - smtp_server_reply(cmd, 552, "5.2.2", "<%s> %s", - smtp_address_encode(address), error); + smtp_server_reply_index(cmd, rcpt_idx, 552, "5.2.2", "<%s> %s", + smtp_address_encode(address), error); } } -- 2.47.3