nicer retry message
authorJeremy Harris <jgh146exb@wizmail.org>
Wed, 9 Mar 2016 14:03:58 +0000 (14:03 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Wed, 6 Apr 2016 20:31:57 +0000 (21:31 +0100)
15 files changed:
src/src/transports/smtp.c
test/log/0098
test/log/0099
test/log/0135
test/log/0163
test/log/0197
test/log/0198
test/log/0288
test/log/0343
test/log/0476
test/msglog/0197.10HmaY-0005vi-00
test/msglog/0198.10HmaZ-0005vi-00
test/msglog/0198.10HmbA-0005vi-00
test/msglog/0198.10HmbC-0005vi-00
test/stderr/0476

index dec52d0..975fc16 100644 (file)
@@ -3960,9 +3960,9 @@ for (addr = addrlist; addr != NULL; addr = addr->next)
     else if (expired)
       {
       setflag(addr, af_pass_message);   /* This is not a security risk */
-      addr->message = (ob->delay_after_cutoff)?
-        US"retry time not reached for any host after a long failure period" :
-        US"all hosts have been failing for a long time and were last tried "
+      addr->message = ob->delay_after_cutoff
+        ? US"retry time not reached for any host after a long failure period"
+        US"all hosts have been failing for a long time and were last tried "
           "after this message arrived";
 
       /* If we are already using fallback hosts, or there are no fallback hosts
@@ -3974,18 +3974,23 @@ for (addr = addrlist; addr != NULL; addr = addr->next)
       }
     else
       {
+      const uschar * s;
       if (hosts_retry == hosts_total)
-        addr->message = US"retry time not reached for any host";
+        s = US"retry time not reached for any host%s";
       else if (hosts_fail == hosts_total)
-        addr->message = US"all host address lookups failed permanently";
+        s = US"all host address lookups%s failed permanently";
       else if (hosts_defer == hosts_total)
-        addr->message = US"all host address lookups failed temporarily";
+        s = US"all host address lookups%s failed temporarily";
       else if (hosts_serial == hosts_total)
-        addr->message = US"connection limit reached for all hosts";
+        s = US"connection limit reached for all hosts%s";
       else if (hosts_fail+hosts_defer == hosts_total)
-        addr->message = US"all host address lookups failed";
-      else addr->message = US"some host address lookups failed and retry time "
-        "not reached for other hosts or connection limit reached";
+        s = US"all host address lookups%s failed";
+      else
+        s = US"some host address lookups failed and retry time "
+        "not reached for other hosts or connection limit reached%s";
+
+      addr->message = string_sprintf(s,
+       addr->domain ? string_sprintf(" for '%s'", addr->domain) : US"");
       }
     }
   }
index 6de357a..6a8748e 100644 (file)
 1999-03-02 09:44:33 10HmaX-0005vi-00 == |/non/existing/file <userx@test.ex> R=userforward defer (-30): pipe_transport unset in userforward router
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == defer@test.ex routing defer (-51): retry time not reached
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == defer@another.test.ex routing defer (-51): retry time not reached
-1999-03-02 09:44:33 10HmbB-0005vi-00 == xxxx@some.domain R=all T=smtp defer (-53): retry time not reached for any host
-1999-03-02 09:44:33 10HmbD-0005vi-00 == yyyy@connection.refused R=refused T=smtp_connect_refused defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmbB-0005vi-00 == xxxx@some.domain R=all T=smtp defer (-53): retry time not reached for any host for 'some.domain'
+1999-03-02 09:44:33 10HmbD-0005vi-00 == yyyy@connection.refused R=refused T=smtp_connect_refused defer (-53): retry time not reached for any host for 'connection.refused'
 1999-03-02 09:44:33 End queue run: pid=pppp
 1999-03-02 09:44:33 Start queue run: pid=pppp
 1999-03-02 09:44:33 10HmaX-0005vi-00 == defer@test.ex routing defer (-51): retry time not reached
 1999-03-02 09:44:33 10HmaX-0005vi-00 == |/non/existing/file <userx@test.ex> R=userforward defer (-30): pipe_transport unset in userforward router
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == defer@test.ex routing defer (-51): retry time not reached
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == defer@another.test.ex routing defer (-51): retry time not reached
-1999-03-02 09:44:33 10HmbB-0005vi-00 == xxxx@some.domain R=all T=smtp defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmbB-0005vi-00 == xxxx@some.domain R=all T=smtp defer (-53): retry time not reached for any host for 'some.domain'
 1999-03-02 09:44:33 10HmbD-0005vi-00 H=127.0.0.1 [127.0.0.1] Connection refused
 1999-03-02 09:44:33 10HmbD-0005vi-00 == yyyy@connection.refused R=refused T=smtp_connect_refused defer (dd): Connection refused
 1999-03-02 09:44:33 End queue run: pid=pppp
index 6fa9433..4b64392 100644 (file)
@@ -2,7 +2,7 @@
 1999-03-02 09:44:33 10HmaX-0005vi-00 H=thishost.test.ex [127.0.0.1] Connection refused
 1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@simple R=all T=smtp defer (dd): Connection refused
 1999-03-02 09:44:33 Start queue run: pid=pppp
-1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@simple R=all T=smtp defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@simple R=all T=smtp defer (-53): retry time not reached for any host for 'simple'
 1999-03-02 09:44:33 End queue run: pid=pppp
 1999-03-02 09:44:33 Start queue run: pid=pppp
 1999-03-02 09:44:33 10HmaX-0005vi-00 H=thishost.test.ex [127.0.0.1] Connection refused
@@ -16,7 +16,7 @@
 1999-03-02 09:44:33 10HmaZ-0005vi-00 H=thishost.test.ex [127.0.0.1] Connection refused
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == userz@simple R=all T=smtp defer (dd): Connection refused
 1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss for with@complex
-1999-03-02 09:44:33 10HmbA-0005vi-00 == with@complex R=all T=smtp defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmbA-0005vi-00 == with@complex R=all T=smtp defer (-53): retry time not reached for any host for 'complex'
 1999-03-02 09:44:33 10HmbB-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss for without@complex
 1999-03-02 09:44:33 10HmbB-0005vi-00 H=thisloop.test.ex [ip4.ip4.ip4.ip4] Connection refused
 1999-03-02 09:44:33 10HmbB-0005vi-00 H=thisloop.test.ex [127.0.0.1] Connection refused
index 35bc9e6..31ab94f 100644 (file)
@@ -14,7 +14,7 @@
 1999-03-02 09:44:33 End queue run: pid=pppp
 1999-03-02 09:44:33 Start queue run: pid=pppp
 1999-03-02 09:44:33 10HmaX-0005vi-00 == d@test.ex R=smart T=local_delivery defer (-52): Retry time not yet reached
-1999-03-02 09:44:33 10HmaX-0005vi-00 == a@unknown.ex R=default T=smtp defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmaX-0005vi-00 == a@unknown.ex R=default T=smtp defer (-53): retry time not reached for any host for 'unknown.ex'
 1999-03-02 09:44:33 End queue run: pid=pppp
 1999-03-02 09:44:33 Start queue run: pid=pppp
 1999-03-02 09:44:33 10HmaX-0005vi-00 == d@test.ex R=smart T=local_delivery defer (-22): mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/d)
index f4002bf..bbe8689 100644 (file)
@@ -2,5 +2,5 @@
 1999-03-02 09:44:33 10HmaX-0005vi-00 H=127.0.0.1 [127.0.0.1]: Malformed SMTP reply in response to end of data: 550 There is a problem with the message, but this response line is over the limit for reasonable SMTP responses. 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12
 1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@domain.com R=all T=smtp defer (-19) H=127.0.0.1 [127.0.0.1]: Malformed SMTP reply in response to end of data: 550 There is a problem with the message, but this response line is over the limit for reasonable SMTP responses. 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 1234567890123456789012345678901234567890123456
 1999-03-02 09:44:33 Start queue run: pid=pppp
-1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@domain.com R=all T=smtp defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@domain.com R=all T=smtp defer (-53): retry time not reached for any host for 'domain.com'
 1999-03-02 09:44:33 End queue run: pid=pppp
index 9e063c4..d7b929f 100644 (file)
@@ -7,9 +7,9 @@
 1999-03-02 09:44:33 10HmaY-0005vi-00 <= doesn't@matter U=CALLER P=local-smtp S=sss
 1999-03-02 09:44:33 10HmaY-0005vi-00 => x@copy.domain R=checkcopy T=makecopy
 1999-03-02 09:44:33 10HmaY-0005vi-00 -> y@copy.domain R=checkcopy T=makecopy
-1999-03-02 09:44:33 10HmaY-0005vi-00 == x@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host
-1999-03-02 09:44:33 10HmaY-0005vi-00 == y@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host
-1999-03-02 09:44:33 10HmaY-0005vi-00 == z@elsewhere R=passall T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmaY-0005vi-00 == x@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host for 'copy.domain'
+1999-03-02 09:44:33 10HmaY-0005vi-00 == y@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host for 'copy.domain'
+1999-03-02 09:44:33 10HmaY-0005vi-00 == z@elsewhere R=passall T=pass_on defer (-53): retry time not reached for any host for 'elsewhere'
 1999-03-02 09:44:33 Start queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmaX-0005vi-00 H=V4NET.0.0.1 [V4NET.0.0.1] Network Error
 1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@copy.domain R=passall T=pass_on defer (dd): Network Error
index f587cb8..36091bd 100644 (file)
@@ -3,9 +3,9 @@
 1999-03-02 09:44:33 10HmaX-0005vi-00 H=V4NET.0.0.1 [V4NET.0.0.1] Network Error
 1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@copy.domain R=check_file T=pass_on defer (dd): Network Error
 1999-03-02 09:44:33 10HmaZ-0005vi-00 <= <> R=10HmaX-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 10HmaZ-0005vi-00 == CALLER@the.local.host.name R=passall T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmaZ-0005vi-00 == CALLER@the.local.host.name R=passall T=pass_on defer (-53): retry time not reached for any host for 'the.local.host.name'
 1999-03-02 09:44:33 10HmbA-0005vi-00 <= doesn't@matter U=CALLER P=local-bsmtp S=sss id=E10HmbB-0005vi-00@the.local.host.name
 1999-03-02 09:44:33 10HmbA-0005vi-00 ** y@copy.domain: Unrouteable address
-1999-03-02 09:44:33 10HmbA-0005vi-00 == x@copy.domain R=check_file T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmbA-0005vi-00 == x@copy.domain R=check_file T=pass_on defer (-53): retry time not reached for any host for 'copy.domain'
 1999-03-02 09:44:33 10HmbC-0005vi-00 <= <> R=10HmbA-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 10HmbC-0005vi-00 == doesn't@matter R=passall T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmbC-0005vi-00 == doesn't@matter R=passall T=pass_on defer (-53): retry time not reached for any host for 'matter'
index 5ca2885..f5bc3d5 100644 (file)
@@ -1,6 +1,6 @@
 1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
 1999-03-02 09:44:33 Start queue run: pid=pppp
-1999-03-02 09:44:33 10HmaX-0005vi-00 == b@test.ex R=all T=smtp defer (-53): connection limit reached for all hosts
+1999-03-02 09:44:33 10HmaX-0005vi-00 == b@test.ex R=all T=smtp defer (-53): connection limit reached for all hosts for 'test.ex'
 1999-03-02 09:44:33 10HmaX-0005vi-00 => a@test.ex R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK"
 1999-03-02 09:44:33 End queue run: pid=pppp
 1999-03-02 09:44:33 Start queue run: pid=pppp
index cdeaab3..d34ba97 100644 (file)
@@ -1,4 +1,4 @@
 1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 1999-03-02 09:44:33 10HmaX-0005vi-00 H=127.0.0.1 [127.0.0.1] Connection refused
 1999-03-02 09:44:33 10HmaX-0005vi-00 == x@y R=all T=remote_smtp defer (dd): Connection refused
-1999-03-02 09:44:33 10HmaX-0005vi-00 == x@y R=all T=remote_smtp defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmaX-0005vi-00 == x@y R=all T=remote_smtp defer (-53): retry time not reached for any host for 'y'
index c2d8ce4..07db42b 100644 (file)
@@ -8,5 +8,5 @@
 1999-03-02 09:44:33 10HmaZ-0005vi-00 H=127.0.0.1 [127.0.0.1] Connection refused
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == CALLER@the.local.host.name R=r1 T=t1 defer (dd): Connection refused
 1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
-1999-03-02 09:44:33 10HmaY-0005vi-00 == usery@test.ex R=r1 T=t1 defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 10HmaY-0005vi-00 == usery@test.ex R=r1 T=t1 defer (-53): retry time not reached for any host for 'test.ex'
 1999-03-02 09:44:33 End queue run: pid=pppp
index a046fcd..1f4de17 100644 (file)
@@ -1,9 +1,9 @@
 1999-03-02 09:44:33 Received from doesn't@matter U=CALLER P=local-smtp S=sss
 1999-03-02 09:44:33 x@copy.domain <x@copy.domain>: makecopy transport succeeded
 1999-03-02 09:44:33 y@copy.domain <y@copy.domain>: makecopy transport succeeded
-1999-03-02 09:44:33 x@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host
-1999-03-02 09:44:33 y@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host
-1999-03-02 09:44:33 z@elsewhere R=passall T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 x@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host for 'copy.domain'
+1999-03-02 09:44:33 y@copy.domain R=passall T=pass_on defer (-53): retry time not reached for any host for 'copy.domain'
+1999-03-02 09:44:33 z@elsewhere R=passall T=pass_on defer (-53): retry time not reached for any host for 'elsewhere'
 1999-03-02 09:44:33 H=V4NET.0.0.1 [V4NET.0.0.1] Network Error
 1999-03-02 09:44:33 x@copy.domain R=passall T=pass_on defer (dd): Network Error
 1999-03-02 09:44:33 y@copy.domain R=passall T=pass_on defer (dd): Network Error
index 9cb4f2d..d9cbe53 100644 (file)
@@ -1,2 +1,2 @@
 1999-03-02 09:44:33 Received from <> R=10HmaX-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 CALLER@the.local.host.name R=passall T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 CALLER@the.local.host.name R=passall T=pass_on defer (-53): retry time not reached for any host for 'the.local.host.name'
index 1017bd8..6907a33 100644 (file)
@@ -1,3 +1,3 @@
 1999-03-02 09:44:33 Received from doesn't@matter U=CALLER P=local-bsmtp S=sss id=E10HmbB-0005vi-00@the.local.host.name
 1999-03-02 09:44:33 routing failed for y@copy.domain: Unrouteable address
-1999-03-02 09:44:33 x@copy.domain R=check_file T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 x@copy.domain R=check_file T=pass_on defer (-53): retry time not reached for any host for 'copy.domain'
index 8bff85f..1c2aeee 100644 (file)
@@ -1,2 +1,2 @@
 1999-03-02 09:44:33 Received from <> R=10HmbA-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 doesn't@matter R=passall T=pass_on defer (-53): retry time not reached for any host
+1999-03-02 09:44:33 doesn't@matter R=passall T=pass_on defer (-53): retry time not reached for any host for 'matter'
index baaa835..eaebb34 100644 (file)
@@ -107,7 +107,7 @@ set_process_info: pppp delivering 10HmaY-0005vi-00 (just run t1 for usery@test.e
 set_process_info: pppp delivering 10HmaY-0005vi-00: waiting for a remote delivery subprocess to finish
 set_process_info: pppp delivering 10HmaY-0005vi-00
 LOG: retry_defer MAIN
-  == usery@test.ex R=r1 T=t1 defer (-53): retry time not reached for any host
+  == usery@test.ex R=r1 T=t1 defer (-53): retry time not reached for any host for 'test.ex'
 set_process_info: pppp tidying up after delivering 10HmaY-0005vi-00
 set_process_info: pppp running queue: waiting for children of pppp
 set_process_info: pppp running queue