Events: Fix msg:defer event for the hosts_max_try_hardlimit case. Bug 2554
[exim.git] / src / src / transports / smtp.c
index 5656e790333c169ebac073aa713156cadcac6f7c..a3f0351e374d966edb76b5f8ae72e06390092568 100644 (file)
@@ -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
       }