Mercurial > dovecot > core-2.2
changeset 18303:73e013bc64a4
lda/lmtp: Added a hardcoded LDA_SUBMISSION_TIMEOUT_SECS=30 timeout for SMTP client.
Maybe we could have a new setting if needed later on, but we've been working
pretty successfully without any timeout for a long time..
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 06 Mar 2015 16:33:23 +0200 |
parents | bf2dbc8ec74b |
children | 9c69c197b527 |
files | src/lda/main.c src/lib-lda/mail-deliver.h src/lib-lda/mail-send.c src/lmtp/commands.c |
diffstat | 4 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lda/main.c Fri Mar 06 16:32:05 2015 +0200 +++ b/src/lda/main.c Fri Mar 06 16:33:23 2015 +0200 @@ -315,6 +315,7 @@ ctx.session = mail_deliver_session_init(); ctx.pool = ctx.session->pool; ctx.dest_mailbox_name = "INBOX"; + ctx.timeout_secs = LDA_SUBMISSION_TIMEOUT_SECS; path = NULL; user = getenv("USER");
--- a/src/lib-lda/mail-deliver.h Fri Mar 06 16:32:05 2015 +0200 +++ b/src/lib-lda/mail-deliver.h Fri Mar 06 16:33:23 2015 +0200 @@ -5,6 +5,10 @@ #include "mail-types.h" #include "mail-error.h" +/* How many seconds to wait for replies from SMTP before failing. Used for + sending rejects, forward, etc. */ +#define LDA_SUBMISSION_TIMEOUT_SECS 30 + struct mail_storage; struct mail_save_context; struct mailbox; @@ -20,6 +24,7 @@ pool_t pool; const struct lda_settings *set; struct mail_deliver_session *session; + unsigned int timeout_secs; struct duplicate_context *dup_ctx;
--- a/src/lib-lda/mail-send.c Fri Mar 06 16:32:05 2015 +0200 +++ b/src/lib-lda/mail-send.c Fri Mar 06 16:33:23 2015 +0200 @@ -180,7 +180,7 @@ str_truncate(str, 0); str_printfa(str, "\r\n\r\n--%s--\r\n", boundary); o_stream_nsend(output, str_data(str), str_len(str)); - if ((ret = smtp_client_deinit(smtp_client, &error)) < 0) { + if ((ret = smtp_client_deinit_timeout(smtp_client, ctx->timeout_secs, &error)) < 0) { i_error("msgid=%s: Temporarily failed to send rejection: %s", orig_msgid == NULL ? "" : str_sanitize(orig_msgid, 80), str_sanitize(error, 512));
--- a/src/lmtp/commands.c Fri Mar 06 16:32:05 2015 +0200 +++ b/src/lmtp/commands.c Fri Mar 06 16:33:23 2015 +0200 @@ -803,6 +803,7 @@ dctx.session = session; dctx.pool = session->pool; dctx.set = lda_set; + dctx.timeout_secs = LDA_SUBMISSION_TIMEOUT_SECS; dctx.session_id = client->state.session_id; dctx.src_mail = src_mail; dctx.src_envelope_sender = client->state.mail_from;