Taint: reject or log more tainted list metadata elements
[exim.git] / test / stderr / 5410
index 53104d0821d893c1c9da6b208dfd38c765878cf7..bd1e5d26f282d0ab4cbae2c389ff38ae39030c22 100644 (file)
@@ -31,6 +31,7 @@ try option acl_smtp_helo
  list element: *
   in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
  list element: *
   in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
+try option acl_smtp_atrn
 try option acl_smtp_etrn
 try option acl_smtp_vrfy
 try option acl_smtp_expn
 try option acl_smtp_etrn
 try option acl_smtp_vrfy
 try option acl_smtp_expn
@@ -44,16 +45,17 @@ try option acl_smtp_expn
 try option acl_smtp_mail
 try option acl_smtp_rcpt
  ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
 try option acl_smtp_mail
 try option acl_smtp_rcpt
  ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
-  ╭considering: SERVER}{server}{queue}{cutthrough}}
-  ├───────text: SERVER
-  ├considering: }{server}{queue}{cutthrough}}
-  ├───expanded: SERVER
-  ╰─────result: SERVER
-  ╭considering: server}{queue}{cutthrough}}
-  ├───────text: server
-  ├considering: }{queue}{cutthrough}}
-  ├───expanded: server
-  ╰─────result: server
+  cond: eq
+   ╭considering: SERVER}{server}{queue}{cutthrough}}
+   ├───────text: SERVER
+   ├considering: }{server}{queue}{cutthrough}}
+   ├───expanded: SERVER
+   ╰─────result: SERVER
+   ╭considering: server}{queue}{cutthrough}}
+   ├───────text: server
+   ├considering: }{queue}{cutthrough}}
+   ├───expanded: server
+   ╰─────result: server
  ├──condition: eq░{SERVER}{server}
  ├─────result: false
   ╭───scanning: queue}{cutthrough}}
  ├──condition: eq░{SERVER}{server}
  ├─────result: false
   ╭───scanning: queue}{cutthrough}}
@@ -70,7 +72,7 @@ try option acl_smtp_rcpt
  ├───expanded: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
  ╰─────result: cutthrough
 using ACL "cutthrough"
  ├───expanded: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
  ╰─────result: cutthrough
 using ACL "cutthrough"
-processing "accept" (TESTSUITE/test-config 22)
+processing ACL cutthrough "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in domains?
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in domains?
@@ -94,12 +96,14 @@ processing address_data
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
+try option errors_to
+try option headers_add
+try option headers_remove
 try option transport
 try option unseen
 try option transport
 try option unseen
-try option unseen
 ----------- end verify ------------
 ----------- end verify ------------
-accept: condition test succeeded in ACL "cutthrough"
-end of ACL "cutthrough": ACCEPT
+accept: condition test succeeded in ACL cutthrough
+end of ACL cutthrough: ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in domains?
  list element: !░+local_domains
 ----------- start cutthrough setup ------------
 domain.com in domains?
  list element: !░+local_domains
@@ -122,9 +126,11 @@ processing address_data
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
+try option errors_to
+try option headers_add
+try option headers_remove
 try option transport
 try option unseen
 try option transport
 try option unseen
-try option unseen
 try option interface
 Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
 try option dscp
 try option interface
 Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
 try option dscp
@@ -149,30 +155,33 @@ cmd buf flush ddd bytes
          250 HELP
 try option host_name_extract
  ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
          250 HELP
 try option host_name_extract
  ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──────value: 127.0.0.1
-  ├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: $host
-  ╰─────result: 127.0.0.1
-  ╭considering: .outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───────text: .outlook.com
-  ├considering: \$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├backslashed: '\$'
-  ├considering: }}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: .outlook.com\$
-  ╰─────result: .outlook.com$
-  ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──────value: 
-  ├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: $item
-  ├─────result:  ◀skipped▶
-  ╰───skipping: result is not used
-  ╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──protected: ^250-([\w.]+)\s
-  ├───scanning: }}}░{$1}}
-  ├───expanded: \N^250-([\w.]+)\s\N
-  ├─────result:  ◀skipped▶
-  ╰───skipping: result is not used
+  cond: and
+   cond: match
+   ╎╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──────value: 127.0.0.1
+   ╎├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: $host
+   ╎╰─────result: 127.0.0.1
+   ╎╭considering: .outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───────text: .outlook.com
+   ╎├considering: \$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├backslashed: '\$'
+   ╎├considering: }}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: .outlook.com\$
+   ╎╰─────result: .outlook.com$
+   cond: match
+   ╎╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──────value: 
+   ╎├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: $item
+   ╎├─────result:  ◀skipped▶
+   ╎╰───skipping: result is not used
+   ╎╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──protected: ^250-([\w.]+)\s
+   ╎├───scanning: }}}░{$1}}
+   ╎├───expanded: \N^250-([\w.]+)\s\N
+   ╎├─────result:  ◀skipped▶
+   ╎╰───skipping: result is not used
  ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
  ├─────result: false
   ╭───scanning: $1}}
  ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
  ├─────result: false
   ╭───scanning: $1}}
@@ -183,18 +192,19 @@ try option host_name_extract
  ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
  ╰─────result: 
  ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
  ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
  ╰─────result: 
  ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
-  ╭considering: $address_data}{usery}{*}{:}}
-  ├──────value: userx
-             ╰──(tainted)
-  ├considering: }{usery}{*}{:}}
-  ├───expanded: $address_data
-  ╰─────result: userx
-             ╰──(tainted)
-  ╭considering: usery}{*}{:}}
-  ├───────text: usery
-  ├considering: }{*}{:}}
-  ├───expanded: usery
-  ╰─────result: usery
+  cond: eq
+   ╭considering: $address_data}{usery}{*}{:}}
+   ├──────value: userx
+              ╰──(tainted)
+   ├considering: }{usery}{*}{:}}
+   ├───expanded: $address_data
+   ╰─────result: userx
+              ╰──(tainted)
+   ╭considering: usery}{*}{:}}
+   ├───────text: usery
+   ├considering: }{*}{:}}
+   ├───expanded: usery
+   ╰─────result: usery
  ├──condition: eq░{$address_data}{usery}
  ├─────result: false
   ╭───scanning: *}{:}}
  ├──condition: eq░{$address_data}{usery}
  ├─────result: false
   ╭───scanning: *}{:}}
@@ -214,18 +224,19 @@ try option host_name_extract
  list element: 
 127.0.0.1 in hosts_avoid_tls? no (end of list)
  ╭considering: ${if░eq░{$address_data}{userz}{*}{:}}
  list element: 
 127.0.0.1 in hosts_avoid_tls? no (end of list)
  ╭considering: ${if░eq░{$address_data}{userz}{*}{:}}
-  ╭considering: $address_data}{userz}{*}{:}}
-  ├──────value: userx
-             ╰──(tainted)
-  ├considering: }{userz}{*}{:}}
-  ├───expanded: $address_data
-  ╰─────result: userx
-             ╰──(tainted)
-  ╭considering: userz}{*}{:}}
-  ├───────text: userz
-  ├considering: }{*}{:}}
-  ├───expanded: userz
-  ╰─────result: userz
+  cond: eq
+   ╭considering: $address_data}{userz}{*}{:}}
+   ├──────value: userx
+              ╰──(tainted)
+   ├considering: }{userz}{*}{:}}
+   ├───expanded: $address_data
+   ╰─────result: userx
+              ╰──(tainted)
+   ╭considering: userz}{*}{:}}
+   ├───────text: userz
+   ├considering: }{*}{:}}
+   ├───expanded: userz
+   ╰─────result: userz
  ├──condition: eq░{$address_data}{userz}
  ├─────result: false
   ╭───scanning: *}{:}}
  ├──condition: eq░{$address_data}{userz}
  ├─────result: false
   ╭───scanning: *}{:}}
@@ -278,7 +289,7 @@ sync_responses expect rcpt for userx@domain.com
 holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 try option acl_smtp_predata
 holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 try option acl_smtp_predata
-processing "accept" (TESTSUITE/test-config 57)
+processing inline ACL "accept"
 accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
 accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
@@ -304,6 +315,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:sender_rcvhost
  ├─────result: false
   ╭───scanning: from░$sender_rcvhost↩
  ├──condition: def:sender_rcvhost
  ├─────result: false
   ╭───scanning: from░$sender_rcvhost↩
@@ -347,6 +359,7 @@ try option received_header_text
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
+   cond: def
   ├──condition: def:sender_ident
   ├─────result: true
    ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩
   ├──condition: def:sender_ident
   ├─────result: true
    ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩
@@ -400,6 +413,7 @@ try option received_header_text
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
+   cond: def
   ├──condition: def:sender_helo_name
   ├─────result: true
    ╭considering: (helo=$sender_helo_name)↩
   ├──condition: def:sender_helo_name
   ├─────result: true
    ╭considering: (helo=$sender_helo_name)↩
@@ -474,6 +488,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:received_protocol
  ├─────result: true
   ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ├──condition: def:received_protocol
  ├─────result: true
   ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
@@ -508,6 +523,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
@@ -515,12 +531,12 @@ try option received_header_text
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
-            ╰──(tainted)
  ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ␉}}(Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ␉}}(Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:tls_in_cipher_std
  ├─────result: false
   ╭───scanning: ░tls░$tls_in_cipher_std↩
  ├──condition: def:tls_in_cipher_std
  ├─────result: false
   ╭───scanning: ░tls░$tls_in_cipher_std↩
@@ -551,7 +567,6 @@ try option received_header_text
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
-            ╰──(tainted)
  ├considering: (Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ├considering: (Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
@@ -571,6 +586,7 @@ try option received_header_text
  ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:sender_address
  ├─────result: true
   ╭considering: (envelope-from░<$sender_address>)↩
  ├──condition: def:sender_address
  ├─────result: true
   ╭considering: (envelope-from░<$sender_address>)↩
@@ -603,6 +619,7 @@ try option received_header_text
  ├──────value: 10HmaX-000000005vi-0000
  ├considering: ${if░def:received_for░{↩
  ␉for░$received_for}}
  ├──────value: 10HmaX-000000005vi-0000
  ├considering: ${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:received_for
  ├─────result: true
   ╭considering: ↩
  ├──condition: def:received_for
  ├─────result: true
   ╭considering: ↩
@@ -690,6 +707,7 @@ try option acl_smtp_helo
  list element: *
   in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
  list element: *
   in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
+try option acl_smtp_atrn
 try option acl_smtp_etrn
 try option acl_smtp_vrfy
 try option acl_smtp_expn
 try option acl_smtp_etrn
 try option acl_smtp_vrfy
 try option acl_smtp_expn
@@ -703,16 +721,17 @@ try option acl_smtp_expn
 try option acl_smtp_mail
 try option acl_smtp_rcpt
  ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
 try option acl_smtp_mail
 try option acl_smtp_rcpt
  ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
-  ╭considering: SERVER}{server}{queue}{cutthrough}}
-  ├───────text: SERVER
-  ├considering: }{server}{queue}{cutthrough}}
-  ├───expanded: SERVER
-  ╰─────result: SERVER
-  ╭considering: server}{queue}{cutthrough}}
-  ├───────text: server
-  ├considering: }{queue}{cutthrough}}
-  ├───expanded: server
-  ╰─────result: server
+  cond: eq
+   ╭considering: SERVER}{server}{queue}{cutthrough}}
+   ├───────text: SERVER
+   ├considering: }{server}{queue}{cutthrough}}
+   ├───expanded: SERVER
+   ╰─────result: SERVER
+   ╭considering: server}{queue}{cutthrough}}
+   ├───────text: server
+   ├considering: }{queue}{cutthrough}}
+   ├───expanded: server
+   ╰─────result: server
  ├──condition: eq░{SERVER}{server}
  ├─────result: false
   ╭───scanning: queue}{cutthrough}}
  ├──condition: eq░{SERVER}{server}
  ├─────result: false
   ╭───scanning: queue}{cutthrough}}
@@ -729,7 +748,7 @@ try option acl_smtp_rcpt
  ├───expanded: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
  ╰─────result: cutthrough
 using ACL "cutthrough"
  ├───expanded: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
  ╰─────result: cutthrough
 using ACL "cutthrough"
-processing "accept" (TESTSUITE/test-config 22)
+processing ACL cutthrough "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in domains?
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in domains?
@@ -753,12 +772,14 @@ processing address_data
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
+try option errors_to
+try option headers_add
+try option headers_remove
 try option transport
 try option unseen
 try option transport
 try option unseen
-try option unseen
 ----------- end verify ------------
 ----------- end verify ------------
-accept: condition test succeeded in ACL "cutthrough"
-end of ACL "cutthrough": ACCEPT
+accept: condition test succeeded in ACL cutthrough
+end of ACL cutthrough: ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in domains?
  list element: !░+local_domains
 ----------- start cutthrough setup ------------
 domain.com in domains?
  list element: !░+local_domains
@@ -781,9 +802,11 @@ processing address_data
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
+try option errors_to
+try option headers_add
+try option headers_remove
 try option transport
 try option unseen
 try option transport
 try option unseen
-try option unseen
 try option interface
 Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
 try option dscp
 try option interface
 Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
 try option dscp
@@ -808,30 +831,33 @@ cmd buf flush ddd bytes
          250 HELP
 try option host_name_extract
  ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
          250 HELP
 try option host_name_extract
  ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──────value: 127.0.0.1
-  ├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: $host
-  ╰─────result: 127.0.0.1
-  ╭considering: .outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───────text: .outlook.com
-  ├considering: \$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├backslashed: '\$'
-  ├considering: }}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: .outlook.com\$
-  ╰─────result: .outlook.com$
-  ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──────value: 
-  ├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: $item
-  ├─────result:  ◀skipped▶
-  ╰───skipping: result is not used
-  ╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──protected: ^250-([\w.]+)\s
-  ├───scanning: }}}░{$1}}
-  ├───expanded: \N^250-([\w.]+)\s\N
-  ├─────result:  ◀skipped▶
-  ╰───skipping: result is not used
+  cond: and
+   cond: match
+   ╎╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──────value: 127.0.0.1
+   ╎├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: $host
+   ╎╰─────result: 127.0.0.1
+   ╎╭considering: .outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───────text: .outlook.com
+   ╎├considering: \$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├backslashed: '\$'
+   ╎├considering: }}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: .outlook.com\$
+   ╎╰─────result: .outlook.com$
+   cond: match
+   ╎╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──────value: 
+   ╎├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: $item
+   ╎├─────result:  ◀skipped▶
+   ╎╰───skipping: result is not used
+   ╎╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──protected: ^250-([\w.]+)\s
+   ╎├───scanning: }}}░{$1}}
+   ╎├───expanded: \N^250-([\w.]+)\s\N
+   ╎├─────result:  ◀skipped▶
+   ╎╰───skipping: result is not used
  ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
  ├─────result: false
   ╭───scanning: $1}}
  ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
  ├─────result: false
   ╭───scanning: $1}}
@@ -842,18 +868,19 @@ try option host_name_extract
  ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
  ╰─────result: 
  ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
  ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
  ╰─────result: 
  ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
-  ╭considering: $address_data}{usery}{*}{:}}
-  ├──────value: usery
-             ╰──(tainted)
-  ├considering: }{usery}{*}{:}}
-  ├───expanded: $address_data
-  ╰─────result: usery
-             ╰──(tainted)
-  ╭considering: usery}{*}{:}}
-  ├───────text: usery
-  ├considering: }{*}{:}}
-  ├───expanded: usery
-  ╰─────result: usery
+  cond: eq
+   ╭considering: $address_data}{usery}{*}{:}}
+   ├──────value: usery
+              ╰──(tainted)
+   ├considering: }{usery}{*}{:}}
+   ├───expanded: $address_data
+   ╰─────result: usery
+              ╰──(tainted)
+   ╭considering: usery}{*}{:}}
+   ├───────text: usery
+   ├considering: }{*}{:}}
+   ├───expanded: usery
+   ╰─────result: usery
  ├──condition: eq░{$address_data}{usery}
  ├─────result: true
   ╭considering: *}{:}}
  ├──condition: eq░{$address_data}{usery}
  ├─────result: true
   ╭considering: *}{:}}
@@ -887,7 +914,7 @@ sync_responses expect rcpt for usery@domain.com
 holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 try option acl_smtp_predata
 holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 try option acl_smtp_predata
-processing "accept" (TESTSUITE/test-config 57)
+processing inline ACL "accept"
 accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
 accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
@@ -913,6 +940,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:sender_rcvhost
  ├─────result: false
   ╭───scanning: from░$sender_rcvhost↩
  ├──condition: def:sender_rcvhost
  ├─────result: false
   ╭───scanning: from░$sender_rcvhost↩
@@ -956,6 +984,7 @@ try option received_header_text
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
+   cond: def
   ├──condition: def:sender_ident
   ├─────result: true
    ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩
   ├──condition: def:sender_ident
   ├─────result: true
    ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩
@@ -1009,6 +1038,7 @@ try option received_header_text
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
+   cond: def
   ├──condition: def:sender_helo_name
   ├─────result: true
    ╭considering: (helo=$sender_helo_name)↩
   ├──condition: def:sender_helo_name
   ├─────result: true
    ╭considering: (helo=$sender_helo_name)↩
@@ -1083,6 +1113,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:received_protocol
  ├─────result: true
   ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ├──condition: def:received_protocol
  ├─────result: true
   ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
@@ -1117,6 +1148,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
@@ -1124,12 +1156,12 @@ try option received_header_text
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
-            ╰──(tainted)
  ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ␉}}(Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ␉}}(Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:tls_in_cipher_std
  ├─────result: false
   ╭───scanning: ░tls░$tls_in_cipher_std↩
  ├──condition: def:tls_in_cipher_std
  ├─────result: false
   ╭───scanning: ░tls░$tls_in_cipher_std↩
@@ -1160,7 +1192,6 @@ try option received_header_text
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
-            ╰──(tainted)
  ├considering: (Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ├considering: (Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
@@ -1180,6 +1211,7 @@ try option received_header_text
  ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:sender_address
  ├─────result: true
   ╭considering: (envelope-from░<$sender_address>)↩
  ├──condition: def:sender_address
  ├─────result: true
   ╭considering: (envelope-from░<$sender_address>)↩
@@ -1212,6 +1244,7 @@ try option received_header_text
  ├──────value: 10HmaZ-000000005vi-0000
  ├considering: ${if░def:received_for░{↩
  ␉for░$received_for}}
  ├──────value: 10HmaZ-000000005vi-0000
  ├considering: ${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:received_for
  ├─────result: true
   ╭considering: ↩
  ├──condition: def:received_for
  ├─────result: true
   ╭considering: ↩
@@ -1299,6 +1332,7 @@ try option acl_smtp_helo
  list element: *
   in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
  list element: *
   in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
+try option acl_smtp_atrn
 try option acl_smtp_etrn
 try option acl_smtp_vrfy
 try option acl_smtp_expn
 try option acl_smtp_etrn
 try option acl_smtp_vrfy
 try option acl_smtp_expn
@@ -1312,16 +1346,17 @@ try option acl_smtp_expn
 try option acl_smtp_mail
 try option acl_smtp_rcpt
  ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
 try option acl_smtp_mail
 try option acl_smtp_rcpt
  ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
-  ╭considering: SERVER}{server}{queue}{cutthrough}}
-  ├───────text: SERVER
-  ├considering: }{server}{queue}{cutthrough}}
-  ├───expanded: SERVER
-  ╰─────result: SERVER
-  ╭considering: server}{queue}{cutthrough}}
-  ├───────text: server
-  ├considering: }{queue}{cutthrough}}
-  ├───expanded: server
-  ╰─────result: server
+  cond: eq
+   ╭considering: SERVER}{server}{queue}{cutthrough}}
+   ├───────text: SERVER
+   ├considering: }{server}{queue}{cutthrough}}
+   ├───expanded: SERVER
+   ╰─────result: SERVER
+   ╭considering: server}{queue}{cutthrough}}
+   ├───────text: server
+   ├considering: }{queue}{cutthrough}}
+   ├───expanded: server
+   ╰─────result: server
  ├──condition: eq░{SERVER}{server}
  ├─────result: false
   ╭───scanning: queue}{cutthrough}}
  ├──condition: eq░{SERVER}{server}
  ├─────result: false
   ╭───scanning: queue}{cutthrough}}
@@ -1338,7 +1373,7 @@ try option acl_smtp_rcpt
  ├───expanded: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
  ╰─────result: cutthrough
 using ACL "cutthrough"
  ├───expanded: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
  ╰─────result: cutthrough
 using ACL "cutthrough"
-processing "accept" (TESTSUITE/test-config 22)
+processing ACL cutthrough "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in domains?
 check control = cutthrough_delivery
 check verify = recipient
 domain.com in domains?
@@ -1362,12 +1397,14 @@ processing address_data
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
+try option errors_to
+try option headers_add
+try option headers_remove
 try option transport
 try option unseen
 try option transport
 try option unseen
-try option unseen
 ----------- end verify ------------
 ----------- end verify ------------
-accept: condition test succeeded in ACL "cutthrough"
-end of ACL "cutthrough": ACCEPT
+accept: condition test succeeded in ACL cutthrough
+end of ACL cutthrough: ACCEPT
 ----------- start cutthrough setup ------------
 domain.com in domains?
  list element: !░+local_domains
 ----------- start cutthrough setup ------------
 domain.com in domains?
  list element: !░+local_domains
@@ -1390,9 +1427,11 @@ processing address_data
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
 domain.com in "*"?
  list element: *
  domain.com in "*"? yes (matched "*")
+try option errors_to
+try option headers_add
+try option headers_remove
 try option transport
 try option unseen
 try option transport
 try option unseen
-try option unseen
 try option interface
 Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
 try option dscp
 try option interface
 Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
 try option dscp
@@ -1417,30 +1456,33 @@ cmd buf flush ddd bytes
          250 HELP
 try option host_name_extract
  ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
          250 HELP
 try option host_name_extract
  ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──────value: 127.0.0.1
-  ├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: $host
-  ╰─────result: 127.0.0.1
-  ╭considering: .outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───────text: .outlook.com
-  ├considering: \$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├backslashed: '\$'
-  ├considering: }}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: .outlook.com\$
-  ╰─────result: .outlook.com$
-  ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──────value: 
-  ├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
-  ├───expanded: $item
-  ├─────result:  ◀skipped▶
-  ╰───skipping: result is not used
-  ╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
-  ├──protected: ^250-([\w.]+)\s
-  ├───scanning: }}}░{$1}}
-  ├───expanded: \N^250-([\w.]+)\s\N
-  ├─────result:  ◀skipped▶
-  ╰───skipping: result is not used
+  cond: and
+   cond: match
+   ╎╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──────value: 127.0.0.1
+   ╎├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: $host
+   ╎╰─────result: 127.0.0.1
+   ╎╭considering: .outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───────text: .outlook.com
+   ╎├considering: \$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├backslashed: '\$'
+   ╎├considering: }}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: .outlook.com\$
+   ╎╰─────result: .outlook.com$
+   cond: match
+   ╎╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──────value: 
+   ╎├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├───expanded: $item
+   ╎├─────result:  ◀skipped▶
+   ╎╰───skipping: result is not used
+   ╎╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
+   ╎├──protected: ^250-([\w.]+)\s
+   ╎├───scanning: }}}░{$1}}
+   ╎├───expanded: \N^250-([\w.]+)\s\N
+   ╎├─────result:  ◀skipped▶
+   ╎╰───skipping: result is not used
  ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
  ├─────result: false
   ╭───scanning: $1}}
  ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
  ├─────result: false
   ╭───scanning: $1}}
@@ -1451,18 +1493,19 @@ try option host_name_extract
  ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
  ╰─────result: 
  ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
  ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
  ╰─────result: 
  ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
-  ╭considering: $address_data}{usery}{*}{:}}
-  ├──────value: usery
-             ╰──(tainted)
-  ├considering: }{usery}{*}{:}}
-  ├───expanded: $address_data
-  ╰─────result: usery
-             ╰──(tainted)
-  ╭considering: usery}{*}{:}}
-  ├───────text: usery
-  ├considering: }{*}{:}}
-  ├───expanded: usery
-  ╰─────result: usery
+  cond: eq
+   ╭considering: $address_data}{usery}{*}{:}}
+   ├──────value: usery
+              ╰──(tainted)
+   ├considering: }{usery}{*}{:}}
+   ├───expanded: $address_data
+   ╰─────result: usery
+              ╰──(tainted)
+   ╭considering: usery}{*}{:}}
+   ├───────text: usery
+   ├considering: }{*}{:}}
+   ├───expanded: usery
+   ╰─────result: usery
  ├──condition: eq░{$address_data}{usery}
  ├─────result: true
   ╭considering: *}{:}}
  ├──condition: eq░{$address_data}{usery}
  ├─────result: true
   ╭considering: *}{:}}
@@ -1496,7 +1539,7 @@ sync_responses expect rcpt for usery@domain.com
 holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 try option acl_smtp_predata
 holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 try option acl_smtp_predata
-processing "accept" (TESTSUITE/test-config 57)
+processing inline ACL "accept"
 accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
 accept: condition test succeeded in inline ACL
 end of inline ACL: ACCEPT
   SMTP>> DATA
@@ -1522,6 +1565,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:sender_rcvhost
  ├─────result: false
   ╭───scanning: from░$sender_rcvhost↩
  ├──condition: def:sender_rcvhost
  ├─────result: false
   ╭───scanning: from░$sender_rcvhost↩
@@ -1565,6 +1609,7 @@ try option received_header_text
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
+   cond: def
   ├──condition: def:sender_ident
   ├─────result: true
    ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩
   ├──condition: def:sender_ident
   ├─────result: true
    ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩
@@ -1618,6 +1663,7 @@ try option received_header_text
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
+   cond: def
   ├──condition: def:sender_helo_name
   ├─────result: true
    ╭considering: (helo=$sender_helo_name)↩
   ├──condition: def:sender_helo_name
   ├─────result: true
    ╭considering: (helo=$sender_helo_name)↩
@@ -1692,6 +1738,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:received_protocol
  ├─────result: true
   ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ├──condition: def:received_protocol
  ├─────result: true
   ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
@@ -1726,6 +1773,7 @@ try option received_header_text
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
   ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
   ␉}}id░$message_exim_id${if░def:received_for░{↩
   ␉for░$received_for}}
@@ -1733,12 +1781,12 @@ try option received_header_text
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
-            ╰──(tainted)
  ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ␉}}(Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ├considering: ${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩
  ␉}}(Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:tls_in_cipher_std
  ├─────result: false
   ╭───scanning: ░tls░$tls_in_cipher_std↩
  ├──condition: def:tls_in_cipher_std
  ├─────result: false
   ╭───scanning: ░tls░$tls_in_cipher_std↩
@@ -1769,7 +1817,6 @@ try option received_header_text
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
   ├─────result:  ◀skipped▶
   ╰───skipping: result is not used
  ├───item-res: 
-            ╰──(tainted)
  ├considering: (Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ├considering: (Exim░$version_number)↩
  ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
@@ -1789,6 +1836,7 @@ try option received_header_text
  ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
  ├considering: ${if░def:sender_address░{(envelope-from░<$sender_address>)↩
  ␉}}id░$message_exim_id${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:sender_address
  ├─────result: true
   ╭considering: (envelope-from░<$sender_address>)↩
  ├──condition: def:sender_address
  ├─────result: true
   ╭considering: (envelope-from░<$sender_address>)↩
@@ -1821,6 +1869,7 @@ try option received_header_text
  ├──────value: 10HmbB-000000005vi-0000
  ├considering: ${if░def:received_for░{↩
  ␉for░$received_for}}
  ├──────value: 10HmbB-000000005vi-0000
  ├considering: ${if░def:received_for░{↩
  ␉for░$received_for}}
+  cond: def
  ├──condition: def:received_for
  ├─────result: true
   ╭considering: ↩
  ├──condition: def:received_for
  ├─────result: true
   ╭considering: ↩