[exim-cvs] Logging: add I= element to transport-defer lines.…

Top Page
Delete this message
Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] Logging: add I= element to transport-defer lines. Bug 2675
Gitweb: https://git.exim.org/exim.git/commitdiff/5c161fa615ab4a2d40170fedd71d1b9a7f079ff6
Commit:     5c161fa615ab4a2d40170fedd71d1b9a7f079ff6
Parent:     46e872abb44a2589488ec47febaf376c89688c1c
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Thu Nov 19 19:05:54 2020 +0000
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Thu Nov 19 20:05:48 2020 +0000


    Logging: add I= element to transport-defer lines.  Bug 2675
---
 doc/doc-docbook/spec.xfpt    |  6 +++++-
 doc/doc-txt/ChangeLog        |  4 ++++
 src/src/deliver.c            | 14 ++------------
 test/confs/0179              |  3 ++-
 test/log/0179                | 14 ++++++++++++--
 test/log/2010                |  2 +-
 test/log/2037                |  2 +-
 test/log/2110                |  2 +-
 test/log/2137                |  2 +-
 test/runtest                 |  2 +-
 test/scripts/0000-Basic/0179 | 35 +++++++++++++++++++++++++++++++++++
 test/stdout/0179             | 28 ++++++++++++++++++++++++++--
 12 files changed, 91 insertions(+), 23 deletions(-)


diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index d62ceaf..34b36ca 100644
--- a/doc/doc-docbook/spec.xfpt
+++ b/doc/doc-docbook/spec.xfpt
@@ -38668,6 +38668,7 @@ routing email addresses, but it does apply to &"byname"& lookups.
 client's ident port times out.
 .next
 .cindex "log" "incoming interface"
+.cindex "log" "outgoing interface"
 .cindex "log" "local interface"
 .cindex "log" "local address and port"
 .cindex "TCP/IP" "logging local address and port"
@@ -38676,7 +38677,10 @@ client's ident port times out.
 to the &"<="& line as an IP address in square brackets, tagged by I= and
 followed by a colon and the port number. The local interface and port are also
 added to other SMTP log lines, for example, &"SMTP connection from"&, to
-rejection lines, and (despite the name) to outgoing &"=>"& and &"->"& lines.
+rejection lines, and (despite the name) to outgoing
+.new
+&"=>"&, &"->"&, &"=="& and &"**"& lines.
+.wen
 The latter can be disabled by turning off the &%outgoing_interface%& option.
 .next
 .cindex log "incoming proxy address"
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index d56454c..16098d5 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -140,6 +140,10 @@ JH/28 Fix spurious logging of select error.  Some platforms, notably FreeBSD,
       a bug in the error-handling.  This was benign apart from the log
       messages.


+JH/29 Bug 2675: add outgoing-interface I= element to deferred "==" log lines,
+      for consistency with delivered "=>" and failed "**" lines.  While we're
+      there, handle PRX and TFO.
+


Exim version 4.94
-----------------
diff --git a/src/src/deliver.c b/src/src/deliver.c
index 9c4c1a7..4e6f08f 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -1325,20 +1325,10 @@ else if (driver_kind)
g = string_fmt_append(g, " defer (%d)", addr->basic_errno);

 if (addr->basic_errno > 0)
-  g = string_append(g, 2, US": ",
-    US strerror(addr->basic_errno));
+  g = string_append(g, 2, US": ", US strerror(addr->basic_errno));


 if (addr->host_used)
-  {
-  g = string_append(g, 5,
-            US" H=", addr->host_used->name,
-            US" [",  addr->host_used->address, US"]");
-  if (LOGGING(outgoing_port))
-    {
-    int port = addr->host_used->port;
-    g = string_fmt_append(g, ":%d", port == PORT_NONE ? 25 : port);
-    }
-  }
+  g = d_hostlog(g, addr);


if (LOGGING(deliver_time))
g = string_append(g, 2, US" DT=", string_timediff(&addr->delivery_time));
diff --git a/test/confs/0179 b/test/confs/0179
index f18ab32..4efe92f 100644
--- a/test/confs/0179
+++ b/test/confs/0179
@@ -8,7 +8,7 @@ primary_hostname = myhost.test.ex

queue_run_in_order
# incoming_interface is used here to get the _outgoing_ local port
-log_selector = +outgoing_port +incoming_interface
+log_selector = +outgoing_port +incoming_interface +received_recipients


# ----- Routers -----
@@ -20,6 +20,7 @@ all:
route_list = * 127.0.0.1 byname
self = send
transport = smtp
+ errors_to = ""
no_more


diff --git a/test/log/0179 b/test/log/0179
index de05f64..614fea6 100644
--- a/test/log/0179
+++ b/test/log/0179
@@ -1,8 +1,18 @@
-1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss for userx@???
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss for abcd@???
1999-03-02 09:44:33 Start queue run: pid=pppp -qqf
1999-03-02 09:44:33 10HmaX-0005vi-00 => userx@??? R=all T=smtp H=127.0.0.1 [127.0.0.1]:PORT_S I=[127.0.0.1]:ppppp C="250 OK"
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
1999-03-02 09:44:33 10HmaY-0005vi-00 => abcd@??? R=all T=smtp H=127.0.0.1 [127.0.0.1]:PORT_S I=[127.0.0.1]:ppppp* C="250 OK"
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
1999-03-02 09:44:33 End queue run: pid=pppp -qqf
+1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss for userz@???
+1999-03-02 09:44:33 Start queue run: pid=pppp -qqf
+1999-03-02 09:44:33 10HmaZ-0005vi-00 H=127.0.0.1 [127.0.0.1]:1111: SMTP error from remote mail server after MAIL FROM:<>: 450 not right now, sorry
+1999-03-02 09:44:33 10HmaZ-0005vi-00 == userz@??? R=all T=smtp defer (-45) H=127.0.0.1 [127.0.0.1]:PORT_S I=[127.0.0.1]:ppppp: SMTP error from remote mail server after MAIL FROM:<>: 450 not right now, sorry
+1999-03-02 09:44:33 End queue run: pid=pppp -qqf
+1999-03-02 09:44:33 Start queue run: pid=pppp -qqf
+1999-03-02 09:44:33 10HmaZ-0005vi-00 ** userz@??? R=all T=smtp H=127.0.0.1 [127.0.0.1]:PORT_S I=[127.0.0.1]:ppppp: SMTP error from remote mail server after RCPT TO:<userz@???>: 550 Recipient refused
+1999-03-02 09:44:33 10HmaZ-0005vi-00 userz@???: error ignored
+1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
+1999-03-02 09:44:33 End queue run: pid=pppp -qqf
diff --git a/test/log/2010 b/test/log/2010
index 5116b35..2295e68 100644
--- a/test/log/2010
+++ b/test/log/2010
@@ -6,7 +6,7 @@
1999-03-02 09:44:33 End queue run: pid=pppp -qf
1999-03-02 09:44:33 Start queue run: pid=pppp -qf
1999-03-02 09:44:33 10HmaY-0005vi-00 H=127.0.0.1 [127.0.0.1]:1111: a TLS session is required, but the server did not offer TLS support
-1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@??? R=client T=send_to_server defer (-38) H=127.0.0.1 [127.0.0.1]:1111: a TLS session is required, but the server did not offer TLS support
+1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@??? R=client T=send_to_server defer (-38) H=127.0.0.1 [127.0.0.1]:PORT_D: a TLS session is required, but the server did not offer TLS support
1999-03-02 09:44:33 10HmaY-0005vi-00 ** userx@???: retry timeout exceeded
1999-03-02 09:44:33 10HmaZ-0005vi-00 <= <> R=10HmaY-0005vi-00 U=EXIMUSER P=local S=sss
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
diff --git a/test/log/2037 b/test/log/2037
index 3291deb..abe4b3e 100644
--- a/test/log/2037
+++ b/test/log/2037
@@ -1,7 +1,7 @@
1999-03-02 09:44:33 U=CALLER F=<> temporarily rejected RCPT <rcpt_defer@???>: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<rcpt_defer@???>: 451 Temporary local problem - please try later
1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss for data_defer@???
1999-03-02 09:44:33 10HmaY-0005vi-00 H=127.0.0.1 [127.0.0.1]:1111: SMTP error from remote mail server after end of data: 451 Temporary local problem - please try later
-1999-03-02 09:44:33 10HmaY-0005vi-00 == data_defer@??? R=client T=t1 defer (-46) H=127.0.0.1 [127.0.0.1]:1111: SMTP error from remote mail server after end of data: 451 Temporary local problem - please try later
+1999-03-02 09:44:33 10HmaY-0005vi-00 == data_defer@??? R=client T=t1 defer (-46) H=127.0.0.1 [127.0.0.1]:PORT_D: SMTP error from remote mail server after end of data: 451 Temporary local problem - please try later

******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port PORT_D
diff --git a/test/log/2110 b/test/log/2110
index ef00023..315dc24 100644
--- a/test/log/2110
+++ b/test/log/2110
@@ -8,7 +8,7 @@
1999-03-02 09:44:33 End queue run: pid=pppp -qf
1999-03-02 09:44:33 Start queue run: pid=pppp -qf
1999-03-02 09:44:33 10HmaY-0005vi-00 H=127.0.0.1 [127.0.0.1]:1111: a TLS session is required, but the server did not offer TLS support
-1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@??? R=client T=send_to_server defer (-38) H=127.0.0.1 [127.0.0.1]:1111: a TLS session is required, but the server did not offer TLS support
+1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@??? R=client T=send_to_server defer (-38) H=127.0.0.1 [127.0.0.1]:PORT_D: a TLS session is required, but the server did not offer TLS support
1999-03-02 09:44:33 10HmaY-0005vi-00 ** userx@???: retry timeout exceeded
1999-03-02 09:44:33 10HmaZ-0005vi-00 <= <> R=10HmaY-0005vi-00 U=EXIMUSER P=local S=sss
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
diff --git a/test/log/2137 b/test/log/2137
index 3291deb..abe4b3e 100644
--- a/test/log/2137
+++ b/test/log/2137
@@ -1,7 +1,7 @@
1999-03-02 09:44:33 U=CALLER F=<> temporarily rejected RCPT <rcpt_defer@???>: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<rcpt_defer@???>: 451 Temporary local problem - please try later
1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss for data_defer@???
1999-03-02 09:44:33 10HmaY-0005vi-00 H=127.0.0.1 [127.0.0.1]:1111: SMTP error from remote mail server after end of data: 451 Temporary local problem - please try later
-1999-03-02 09:44:33 10HmaY-0005vi-00 == data_defer@??? R=client T=t1 defer (-46) H=127.0.0.1 [127.0.0.1]:1111: SMTP error from remote mail server after end of data: 451 Temporary local problem - please try later
+1999-03-02 09:44:33 10HmaY-0005vi-00 == data_defer@??? R=client T=t1 defer (-46) H=127.0.0.1 [127.0.0.1]:PORT_D: SMTP error from remote mail server after end of data: 451 Temporary local problem - please try later

******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port PORT_D
diff --git a/test/runtest b/test/runtest
index d4e469b..b5ace4e 100755
--- a/test/runtest
+++ b/test/runtest
@@ -780,7 +780,7 @@ RESET_AFTER_EXTRA_LINE_READ:

   # This handles "connection from" and the like, when the port is given
   if (!/listening for SMTP on/ && !/Connecting to/ && !/=>/ && !/->/
-      && !/\*>/ && !/Connection refused/)
+      && !/\*>/&& !/==/  && !/\*\*/ && !/Connection refused/ && !/in response to/)
     {
     s/\[([a-z\d:]+|\d+(?:\.\d+){3})\]:(\d+)/"[".$1."]:".new_value($2,"%s",\$next_port)/ie;
     }
diff --git a/test/scripts/0000-Basic/0179 b/test/scripts/0000-Basic/0179
index 932cc11..6a7b225 100644
--- a/test/scripts/0000-Basic/0179
+++ b/test/scripts/0000-Basic/0179
@@ -33,3 +33,38 @@ QUIT
 ****
 exim -odi -qqf
 ****
+#
+# Defer from receiving host
+exim -odq userz@???
+.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250 HELP
+MAIL FROM:
+450 not right now, sorry
+QUIT
+250 OK
+****
+exim -odi -qqf
+****
+#
+# Deny from receiving host
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250 HELP
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+550 Recipient refused
+QUIT
+250 OK
+****
+exim -odi -qqf
+****
+#
+no_msglog_check
diff --git a/test/stdout/0179 b/test/stdout/0179
index 9013698..c8db946 100644
--- a/test/stdout/0179
+++ b/test/stdout/0179
@@ -6,7 +6,7 @@ Connection request from [127.0.0.1]
 EHLO myhost.test.ex
 250-OK
 250 HELP
-MAIL FROM:<CALLER@???>
+MAIL FROM:<>
 250 Sender OK
 RCPT TO:<userx@???>
 250 Recipient OK
@@ -22,7 +22,7 @@ Date: Tue, 2 Mar 1999 09:44:33 +0000


.
250 OK
-MAIL FROM:<CALLER@???>
+MAIL FROM:<>
250 Sender OK
RCPT TO:<abcd@???>
250 Recipient OK
@@ -41,3 +41,27 @@ Date: Tue, 2 Mar 1999 09:44:33 +0000
QUIT
250 OK
End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 ESMTP
+EHLO myhost.test.ex
+250-OK
+250 HELP
+MAIL FROM:<>
+450 not right now, sorry
+QUIT
+250 OK
+End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 ESMTP
+EHLO myhost.test.ex
+250-OK
+250 HELP
+MAIL FROM:<>
+250 Sender OK
+RCPT TO:<userz@???>
+550 Recipient refused
+QUIT
+250 OK
+End of script