From: Jeremy Harris Date: Wed, 9 Mar 2016 14:03:58 +0000 (+0000) Subject: nicer retry message X-Git-Tag: exim-4_91_RC1~148^2~42^2~21 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/f6e3dab0a6c16f228de5a68078659f887f272f65?ds=inline nicer retry message --- diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index 0fa761e75..78673d4c8 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -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""); } } } diff --git a/test/log/0098 b/test/log/0098 index 6de357a8a..6a8748ef1 100644 --- a/test/log/0098 +++ b/test/log/0098 @@ -42,15 +42,15 @@ 1999-03-02 09:44:33 10HmaX-0005vi-00 == |/non/existing/file 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 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 diff --git a/test/log/0099 b/test/log/0099 index 6fa94331a..4b6439219 100644 --- a/test/log/0099 +++ b/test/log/0099 @@ -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 diff --git a/test/log/0135 b/test/log/0135 index 35bc9e63a..31ab94f28 100644 --- a/test/log/0135 +++ b/test/log/0135 @@ -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) diff --git a/test/log/0163 b/test/log/0163 index f4002bf7c..bbe86895f 100644 --- a/test/log/0163 +++ b/test/log/0163 @@ -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 diff --git a/test/log/0197 b/test/log/0197 index 9e063c49e..d7b929fda 100644 --- a/test/log/0197 +++ b/test/log/0197 @@ -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 diff --git a/test/log/0198 b/test/log/0198 index f587cb8a2..36091bdc0 100644 --- a/test/log/0198 +++ b/test/log/0198 @@ -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' diff --git a/test/log/0288 b/test/log/0288 index 5ca2885a4..f5bc3d53b 100644 --- a/test/log/0288 +++ b/test/log/0288 @@ -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 diff --git a/test/log/0343 b/test/log/0343 index cdeaab3f0..d34ba97ed 100644 --- a/test/log/0343 +++ b/test/log/0343 @@ -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' diff --git a/test/log/0476 b/test/log/0476 index c2d8ce42d..07db42b6d 100644 --- a/test/log/0476 +++ b/test/log/0476 @@ -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 diff --git a/test/msglog/0197.10HmaY-0005vi-00 b/test/msglog/0197.10HmaY-0005vi-00 index a046fcdba..1f4de1777 100644 --- a/test/msglog/0197.10HmaY-0005vi-00 +++ b/test/msglog/0197.10HmaY-0005vi-00 @@ -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 : makecopy transport succeeded 1999-03-02 09:44:33 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 diff --git a/test/msglog/0198.10HmaZ-0005vi-00 b/test/msglog/0198.10HmaZ-0005vi-00 index 9cb4f2d7e..d9cbe5344 100644 --- a/test/msglog/0198.10HmaZ-0005vi-00 +++ b/test/msglog/0198.10HmaZ-0005vi-00 @@ -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' diff --git a/test/msglog/0198.10HmbA-0005vi-00 b/test/msglog/0198.10HmbA-0005vi-00 index 1017bd877..6907a33df 100644 --- a/test/msglog/0198.10HmbA-0005vi-00 +++ b/test/msglog/0198.10HmbA-0005vi-00 @@ -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' diff --git a/test/msglog/0198.10HmbC-0005vi-00 b/test/msglog/0198.10HmbC-0005vi-00 index 8bff85f95..1c2aeee3e 100644 --- a/test/msglog/0198.10HmbC-0005vi-00 +++ b/test/msglog/0198.10HmbC-0005vi-00 @@ -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' diff --git a/test/stderr/0476 b/test/stderr/0476 index baaa8356f..eaebb34d4 100644 --- a/test/stderr/0476 +++ b/test/stderr/0476 @@ -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