From: Jeremy Harris Date: Sun, 19 Apr 2020 20:18:21 +0000 (+0100) Subject: Events: Fix msg:defer event for the hosts_max_try_hardlimit case. Bug 2554 X-Git-Tag: exim-4_94_RC0~17 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/1f0be89381a057aaaaa4ecd4890d4597b7f6ce80?ds=sidebyside;hp=a89b6bd32a650871031f4fce9b80ab6b7eb47d8e Events: Fix msg:defer event for the hosts_max_try_hardlimit case. Bug 2554 --- diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 9de2e1194..edab6a829 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -164,6 +164,9 @@ JH/35 The dsearch lookup now requires that the directory is an absolute path. Previously this was not checked, and nonempty relative paths made an access under Exim's current working directory. +JH/36 Bug 2554: Fix msg:defer event for the hosts_max_try_hardlimit case. + Previously no event was raised. + Exim version 4.93 ----------------- diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index 5656e7903..a3f0351e3 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -5163,7 +5163,12 @@ retry_non_continued: #ifndef DISABLE_EVENT /* If the last host gave a defer raise a per-message event */ - if (!nexthost && (message_defer || rc == DEFER)) + if ( !( nexthost + && unexpired_hosts_tried < ob->hosts_max_try + && total_hosts_tried < ob->hosts_max_try_hardlimit + ) + && (message_defer || rc == DEFER) + ) deferred_event_raise(first_addr, host, US"msg:defer"); #endif }