Use non-releaseable memory for regex match strings. Bug 3047
[exim.git] / test / stderr / 5420
index ff97dbbc7f81e444fc456844b35f4ab6be406df2..ac3c16c8183846ad8509934f67ce11c9bf18776c 100644 (file)
@@ -1,4 +1,6 @@
 Exim version x.yz ....
 Exim version x.yz ....
+environment after trimming:
+ PATH=<munged>
 adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 admin user
 adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 admin user
@@ -6,18 +8,27 @@ admin user
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
  ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
  ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
+ ├──────value: myhost.test.ex
  ├considering:  ESMTP Exim $version_number $tod_full
  ├───────text:  ESMTP Exim 
  ├considering: $version_number $tod_full
  ├considering:  ESMTP Exim $version_number $tod_full
  ├───────text:  ESMTP Exim 
  ├considering: $version_number $tod_full
+ ├──────value: x.yz
  ├considering:  $tod_full
  ├───────text:  
  ├considering: $tod_full
  ├considering:  $tod_full
  ├───────text:  
  ├considering: $tod_full
+ ├──────value: Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
  ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
  ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+ list element: *
+  in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
  in dsn_advertise_hosts? no (option unset)
- in pipelining_advertise_hosts? yes (matched "*")
+ in pipelining_advertise_hosts?
+ list element: *
+  in pipelining_advertise_hosts? yes (matched "*")
+ in chunking_advertise_hosts?
  in chunking_advertise_hosts? no (end of list)
  in chunking_advertise_hosts? no (end of list)
- in tls_advertise_hosts? yes (matched "*")
+ list element: *
+  in tls_advertise_hosts? yes (matched "*")
  ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
   ╭considering: SERVER}{server}{queue}{cutthrough}}
   ├───────text: SERVER
  ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
   ╭considering: SERVER}{server}{queue}{cutthrough}}
   ├───────text: SERVER
@@ -48,26 +59,51 @@ using ACL "cutthrough"
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
-domain.com in "test.ex : *.test.ex"? no (end of list)
+domain.com in "! +local_domains"?
+ list element: ! +local_domains
+  start sublist local_domains
+   domain.com in "test.ex : *.test.ex"?
+   ╎list element: test.ex
+   ╎list element: *.test.ex
+   domain.com in "test.ex : *.test.ex"? no (end of list)
+  end sublist local_domains
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
+ ├──────value: userx
+            ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: userx
             ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: userx
             ╰──(tainted)
-domain.com in "*"? yes (matched "*")
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
-domain.com in "test.ex : *.test.ex"? no (end of list)
+domain.com in "! +local_domains"?
+ list element: ! +local_domains
+  start sublist local_domains
+   domain.com in "test.ex : *.test.ex"?
+   ╎list element: test.ex
+   ╎list element: *.test.ex
+   domain.com in "test.ex : *.test.ex"? no (end of list)
+  end sublist local_domains
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
+ ├──────value: userx
+            ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: userx
             ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: userx
             ╰──(tainted)
-domain.com in "*"? yes (matched "*")
-Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ...  connected
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... 127.0.0.1 in hosts_try_fastopen?
+ list element: 
+ connected
  ╭considering: $primary_hostname
  ╭considering: $primary_hostname
+ ├──────value: myhost.test.ex
  ├──expanding: $primary_hostname
  ╰─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $primary_hostname
  ╰─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -76,12 +112,49 @@ Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ...  connected
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
+         250-LIMITS MAILMAX=1000 RCPTMAX=50000
          250-8BITMIME
          250-PIPELINING
          250-STARTTLS
          250 HELP
          250-8BITMIME
          250-PIPELINING
          250-STARTTLS
          250 HELP
+ ╭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}}
+  ├──expanding: $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}}
+  ├──expanding: .outlook.com\$
+  ╰─────result: .outlook.com$
+  ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}} {$1}}
+  ├──────value: 
+  ├───scanning: }{\N^250-([\w.]+)\s\N}}} {$1}}
+  ├──expanding: $item
+  ├─────result: 
+  ╰───skipping: result is not used
+  ╭───scanning: \N^250-([\w.]+)\s\N}}} {$1}}
+  ├──protected: ^250-([\w.]+)\s
+  ├───scanning: }}} {$1}}
+  ├──expanding: \N^250-([\w.]+)\s\N
+  ├─────result: ^250-([\w.]+)\s
+  ╰───skipping: result is not used
+ ├──condition: and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}}
+ ├─────result: false
+  ╭───scanning: $1}}
+  ├───scanning: }}
+  ├──expanding: $1
+  ├─────result: 
+  ╰───skipping: result is not used
+ ├──expanding: ${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}{*}{:}}
  ╭considering: ${if eq {$address_data}{usery}{*}{:}}
   ╭considering: $address_data}{usery}{*}{:}}
+  ├──────value: userx
+             ╰──(tainted)
   ├considering: }{usery}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: userx
   ├considering: }{usery}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: userx
@@ -106,9 +179,13 @@ cmd buf flush ddd bytes
   ╰─────result: :
  ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
  ╰─────result: :
   ╰─────result: :
  ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
  ╰─────result: :
+127.0.0.1 in hosts_avoid_tls?
+ list element: 
 127.0.0.1 in hosts_avoid_tls? no (end of list)
  ╭considering: ${if eq {$address_data}{userz}{*}{:}}
   ╭considering: $address_data}{userz}{*}{:}}
 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}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: userx
   ├considering: }{userz}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: userx
@@ -133,17 +210,25 @@ cmd buf flush ddd bytes
   ╰─────result: :
  ├──expanding: ${if eq {$address_data}{userz}{*}{:}}
  ╰─────result: :
   ╰─────result: :
  ├──expanding: ${if eq {$address_data}{userz}{*}{:}}
  ╰─────result: :
+127.0.0.1 in hosts_verify_avoid_tls?
+ list element: 
 127.0.0.1 in hosts_verify_avoid_tls? no (end of list)
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
   SMTP<< 220 TLS go ahead
 127.0.0.1 in hosts_verify_avoid_tls? no (end of list)
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
   SMTP<< 220 TLS go ahead
+ list element: *
 127.0.0.1 in tls_verify_hosts? no (option unset)
 127.0.0.1 in tls_verify_hosts? no (option unset)
-127.0.0.1 in tls_try_verify_hosts? yes (matched "*")
-127.0.0.1 in tls_verify_cert_hostnames? yes (matched "*")
+127.0.0.1 in tls_try_verify_hosts?
+ list element: *
+ 127.0.0.1 in tls_try_verify_hosts? yes (matched "*")
+127.0.0.1 in tls_verify_cert_hostnames?
+ list element: *
+ 127.0.0.1 in tls_verify_cert_hostnames? yes (matched "*")
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
   SMTP>> EHLO myhost.test.ex
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
+         250-LIMITS MAILMAX=1000 RCPTMAX=50000
          250-8BITMIME
          250-PIPELINING
          250 HELP
          250-8BITMIME
          250-PIPELINING
          250 HELP
@@ -200,6 +285,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: 
   ├───scanning: 
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
   ├───scanning: 
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
@@ -247,6 +333,7 @@ end of inline ACL: ACCEPT
    ╎ ${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}}
+   ╎├──────value: CALLER
    ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name)
    ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
    ╎ }}(Exim $version_number)
    ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name)
    ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
    ╎ }}(Exim $version_number)
@@ -293,6 +380,8 @@ end of inline ACL: ACCEPT
        ${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}}
+   ├──────value: myhost.test.ex
+              ╰──(tainted)
    ├considering: )
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
    ├considering: )
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
@@ -338,6 +427,7 @@ end of inline ACL: ACCEPT
        ${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}}
+ ├──────value: myhost.test.ex
  ├considering:  ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
  ├considering:  ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -362,6 +452,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: local-esmtp
   ├considering:  }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
   ├considering:  }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -382,6 +473,7 @@ end of inline ACL: ACCEPT
        ${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}}
+       ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──expanding:  ($tls_in_ver)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──expanding:  ($tls_in_ver)
@@ -407,6 +499,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: 
   ├───scanning: 
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
   ├───scanning: 
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -434,6 +527,7 @@ end of inline ACL: ACCEPT
        ${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}}
+ ├──────value: x.yz
  ├considering: )
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
  ├considering: )
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
@@ -452,6 +546,7 @@ end of inline ACL: ACCEPT
   ├considering: $sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├considering: $sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
+  ├──────value: CALLER@myhost.test.ex
   ├considering: >)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├considering: >)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
@@ -471,6 +566,7 @@ end of inline ACL: ACCEPT
  ├───────text: id 
  ├considering: $message_exim_id${if def:received_for {
        for $received_for}}
  ├───────text: id 
  ├considering: $message_exim_id${if def:received_for {
        for $received_for}}
+ ├──────value: 10HmaX-000000005vi-0000
  ├considering: ${if def:received_for {
        for $received_for}}
  ├──condition: def:received_for
  ├considering: ${if def:received_for {
        for $received_for}}
  ├──condition: def:received_for
@@ -480,6 +576,8 @@ end of inline ACL: ACCEPT
   ├───────text: 
        for 
   ├considering: $received_for}}
   ├───────text: 
        for 
   ├considering: $received_for}}
+  ├──────value: userx@domain.com
+             ╰──(tainted)
   ├considering: }}
   ├──expanding: 
        for $received_for
   ├considering: }}
   ├──expanding: 
        for $received_for
@@ -499,7 +597,7 @@ end of inline ACL: ACCEPT
  ╰─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
  ╰─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
-       id 10HmaX-0005vi-00
+       id 10HmaX-000000005vi-0000
        for userx@domain.com
             ╰──(tainted)
 ----------- start cutthrough headers send -----------
        for userx@domain.com
             ╰──(tainted)
 ----------- start cutthrough headers send -----------
@@ -508,21 +606,24 @@ end of inline ACL: ACCEPT
  ├──expanding: ${tod_full}
  ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
  ├──expanding: ${tod_full}
  ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
-  SMTP<< 250 OK id=10HmaY-0005vi-00
+  SMTP<< 250 OK id=10HmaY-000000005vi-0000
 LOG: MAIN
 LOG: MAIN
-  >> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmaY-0005vi-00"
+  >> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmaY-000000005vi-0000"
   SMTP>> QUIT
   SMTP<< 221 myhost.test.ex closing connection
   SMTP(close)>>
   SMTP>> QUIT
   SMTP<< 221 myhost.test.ex closing connection
   SMTP(close)>>
+cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
 ----------- cutthrough shutdown (delivered) ------------
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
 LOG: MAIN
   Completed
 LOG: smtp_connection MAIN
 ----------- cutthrough shutdown (delivered) ------------
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
 LOG: MAIN
   Completed
 LOG: smtp_connection MAIN
-  SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
+  SMTP connection from CALLER D=qqs closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Exim version x.yz ....
+environment after trimming:
+ PATH=<munged>
 adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 admin user
 adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 admin user
@@ -530,18 +631,27 @@ admin user
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
  ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
  ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
+ ├──────value: myhost.test.ex
  ├considering:  ESMTP Exim $version_number $tod_full
  ├───────text:  ESMTP Exim 
  ├considering: $version_number $tod_full
  ├considering:  ESMTP Exim $version_number $tod_full
  ├───────text:  ESMTP Exim 
  ├considering: $version_number $tod_full
+ ├──────value: x.yz
  ├considering:  $tod_full
  ├───────text:  
  ├considering: $tod_full
  ├considering:  $tod_full
  ├───────text:  
  ├considering: $tod_full
+ ├──────value: Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
  ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
  ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+ list element: *
+  in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
  in dsn_advertise_hosts? no (option unset)
- in pipelining_advertise_hosts? yes (matched "*")
+ in pipelining_advertise_hosts?
+ list element: *
+  in pipelining_advertise_hosts? yes (matched "*")
+ in chunking_advertise_hosts?
  in chunking_advertise_hosts? no (end of list)
  in chunking_advertise_hosts? no (end of list)
- in tls_advertise_hosts? yes (matched "*")
+ list element: *
+  in tls_advertise_hosts? yes (matched "*")
  ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
   ╭considering: SERVER}{server}{queue}{cutthrough}}
   ├───────text: SERVER
  ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
   ╭considering: SERVER}{server}{queue}{cutthrough}}
   ├───────text: SERVER
@@ -572,26 +682,51 @@ using ACL "cutthrough"
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
-domain.com in "test.ex : *.test.ex"? no (end of list)
+domain.com in "! +local_domains"?
+ list element: ! +local_domains
+  start sublist local_domains
+   domain.com in "test.ex : *.test.ex"?
+   ╎list element: test.ex
+   ╎list element: *.test.ex
+   domain.com in "test.ex : *.test.ex"? no (end of list)
+  end sublist local_domains
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
+ ├──────value: usery
+            ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
-domain.com in "*"? yes (matched "*")
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
-domain.com in "test.ex : *.test.ex"? no (end of list)
+domain.com in "! +local_domains"?
+ list element: ! +local_domains
+  start sublist local_domains
+   domain.com in "test.ex : *.test.ex"?
+   ╎list element: test.ex
+   ╎list element: *.test.ex
+   domain.com in "test.ex : *.test.ex"? no (end of list)
+  end sublist local_domains
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
+ ├──────value: usery
+            ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
-domain.com in "*"? yes (matched "*")
-Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ...  connected
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... 127.0.0.1 in hosts_try_fastopen?
+ list element: 
+ connected
  ╭considering: $primary_hostname
  ╭considering: $primary_hostname
+ ├──────value: myhost.test.ex
  ├──expanding: $primary_hostname
  ╰─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $primary_hostname
  ╰─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -600,12 +735,49 @@ Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ...  connected
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
+         250-LIMITS MAILMAX=1000 RCPTMAX=50000
          250-8BITMIME
          250-PIPELINING
          250-STARTTLS
          250 HELP
          250-8BITMIME
          250-PIPELINING
          250-STARTTLS
          250 HELP
+ ╭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}}
+  ├──expanding: $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}}
+  ├──expanding: .outlook.com\$
+  ╰─────result: .outlook.com$
+  ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}} {$1}}
+  ├──────value: 
+  ├───scanning: }{\N^250-([\w.]+)\s\N}}} {$1}}
+  ├──expanding: $item
+  ├─────result: 
+  ╰───skipping: result is not used
+  ╭───scanning: \N^250-([\w.]+)\s\N}}} {$1}}
+  ├──protected: ^250-([\w.]+)\s
+  ├───scanning: }}} {$1}}
+  ├──expanding: \N^250-([\w.]+)\s\N
+  ├─────result: ^250-([\w.]+)\s
+  ╰───skipping: result is not used
+ ├──condition: and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}}
+ ├─────result: false
+  ╭───scanning: $1}}
+  ├───scanning: }}
+  ├──expanding: $1
+  ├─────result: 
+  ╰───skipping: result is not used
+ ├──expanding: ${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}{*}{:}}
  ╭considering: ${if eq {$address_data}{usery}{*}{:}}
   ╭considering: $address_data}{usery}{*}{:}}
+  ├──────value: usery
+             ╰──(tainted)
   ├considering: }{usery}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: usery
   ├considering: }{usery}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: usery
@@ -630,7 +802,9 @@ cmd buf flush ddd bytes
   ╰───skipping: result is not used
  ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
  ╰─────result: *
   ╰───skipping: result is not used
  ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
  ╰─────result: *
-127.0.0.1 in hosts_avoid_tls? yes (matched "*")
+127.0.0.1 in hosts_avoid_tls?
+ list element: *
+ 127.0.0.1 in hosts_avoid_tls? yes (matched "*")
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
 not using DSN
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
 not using DSN
@@ -684,6 +858,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: 
   ├───scanning: 
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
   ├───scanning: 
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
@@ -731,6 +906,7 @@ end of inline ACL: ACCEPT
    ╎ ${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}}
+   ╎├──────value: CALLER
    ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name)
    ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
    ╎ }}(Exim $version_number)
    ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name)
    ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
    ╎ }}(Exim $version_number)
@@ -777,6 +953,8 @@ end of inline ACL: ACCEPT
        ${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}}
+   ├──────value: myhost.test.ex
+              ╰──(tainted)
    ├considering: )
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
    ├considering: )
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
@@ -822,6 +1000,7 @@ end of inline ACL: ACCEPT
        ${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}}
+ ├──────value: myhost.test.ex
  ├considering:  ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
  ├considering:  ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -846,6 +1025,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: local-esmtp
   ├considering:  }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
   ├considering:  }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -866,6 +1046,7 @@ end of inline ACL: ACCEPT
        ${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}}
+       ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──expanding:  ($tls_in_ver)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──expanding:  ($tls_in_ver)
@@ -891,6 +1072,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: 
   ├───scanning: 
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
   ├───scanning: 
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -918,6 +1100,7 @@ end of inline ACL: ACCEPT
        ${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}}
+ ├──────value: x.yz
  ├considering: )
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
  ├considering: )
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
@@ -936,6 +1119,7 @@ end of inline ACL: ACCEPT
   ├considering: $sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├considering: $sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
+  ├──────value: CALLER@myhost.test.ex
   ├considering: >)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├considering: >)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
@@ -955,6 +1139,7 @@ end of inline ACL: ACCEPT
  ├───────text: id 
  ├considering: $message_exim_id${if def:received_for {
        for $received_for}}
  ├───────text: id 
  ├considering: $message_exim_id${if def:received_for {
        for $received_for}}
+ ├──────value: 10HmaZ-000000005vi-0000
  ├considering: ${if def:received_for {
        for $received_for}}
  ├──condition: def:received_for
  ├considering: ${if def:received_for {
        for $received_for}}
  ├──condition: def:received_for
@@ -964,6 +1149,8 @@ end of inline ACL: ACCEPT
   ├───────text: 
        for 
   ├considering: $received_for}}
   ├───────text: 
        for 
   ├considering: $received_for}}
+  ├──────value: usery@domain.com
+             ╰──(tainted)
   ├considering: }}
   ├──expanding: 
        for $received_for
   ├considering: }}
   ├──expanding: 
        for $received_for
@@ -983,7 +1170,7 @@ end of inline ACL: ACCEPT
  ╰─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
  ╰─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
-       id 10HmaZ-0005vi-00
+       id 10HmaZ-000000005vi-0000
        for usery@domain.com
             ╰──(tainted)
 ----------- start cutthrough headers send -----------
        for usery@domain.com
             ╰──(tainted)
 ----------- start cutthrough headers send -----------
@@ -992,21 +1179,24 @@ end of inline ACL: ACCEPT
  ├──expanding: ${tod_full}
  ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
  ├──expanding: ${tod_full}
  ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
-  SMTP<< 250 OK id=10HmbA-0005vi-00
+  SMTP<< 250 OK id=10HmbA-000000005vi-0000
 LOG: MAIN
 LOG: MAIN
-  >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-0005vi-00"
+  >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-000000005vi-0000"
   SMTP>> QUIT
   SMTP<< 221 myhost.test.ex closing connection
   SMTP(close)>>
   SMTP>> QUIT
   SMTP<< 221 myhost.test.ex closing connection
   SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
 ----------- cutthrough shutdown (delivered) ------------
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
 LOG: MAIN
   Completed
 LOG: smtp_connection MAIN
 ----------- cutthrough shutdown (delivered) ------------
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
 LOG: MAIN
   Completed
 LOG: smtp_connection MAIN
-  SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
+  SMTP connection from CALLER D=qqs closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Exim version x.yz ....
+environment after trimming:
+ PATH=<munged>
 adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 admin user
 adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 admin user
@@ -1014,18 +1204,27 @@ admin user
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
  ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
 LOG: smtp_connection MAIN
   SMTP connection from CALLER
  ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
+ ├──────value: myhost.test.ex
  ├considering:  ESMTP Exim $version_number $tod_full
  ├───────text:  ESMTP Exim 
  ├considering: $version_number $tod_full
  ├considering:  ESMTP Exim $version_number $tod_full
  ├───────text:  ESMTP Exim 
  ├considering: $version_number $tod_full
+ ├──────value: x.yz
  ├considering:  $tod_full
  ├───────text:  
  ├considering: $tod_full
  ├considering:  $tod_full
  ├───────text:  
  ├considering: $tod_full
+ ├──────value: Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
  ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full
  ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+ list element: *
+  in limits_advertise_hosts? yes (matched "*")
  in dsn_advertise_hosts? no (option unset)
  in dsn_advertise_hosts? no (option unset)
- in pipelining_advertise_hosts? yes (matched "*")
+ in pipelining_advertise_hosts?
+ list element: *
+  in pipelining_advertise_hosts? yes (matched "*")
+ in chunking_advertise_hosts?
  in chunking_advertise_hosts? no (end of list)
  in chunking_advertise_hosts? no (end of list)
- in tls_advertise_hosts? yes (matched "*")
+ list element: *
+  in tls_advertise_hosts? yes (matched "*")
  ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
   ╭considering: SERVER}{server}{queue}{cutthrough}}
   ├───────text: SERVER
  ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
   ╭considering: SERVER}{server}{queue}{cutthrough}}
   ├───────text: SERVER
@@ -1056,26 +1255,51 @@ using ACL "cutthrough"
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
 processing "accept" (TESTSUITE/test-config 22)
 check control = cutthrough_delivery
 check verify = recipient
-domain.com in "test.ex : *.test.ex"? no (end of list)
+domain.com in "! +local_domains"?
+ list element: ! +local_domains
+  start sublist local_domains
+   domain.com in "test.ex : *.test.ex"?
+   ╎list element: test.ex
+   ╎list element: *.test.ex
+   domain.com in "test.ex : *.test.ex"? no (end of list)
+  end sublist local_domains
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
+ ├──────value: usery
+            ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
-domain.com in "*"? yes (matched "*")
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
 ----------- end verify ------------
 accept: condition test succeeded in ACL "cutthrough"
 end of ACL "cutthrough": ACCEPT
 ----------- start cutthrough setup ------------
-domain.com in "test.ex : *.test.ex"? no (end of list)
+domain.com in "! +local_domains"?
+ list element: ! +local_domains
+  start sublist local_domains
+   domain.com in "test.ex : *.test.ex"?
+   ╎list element: test.ex
+   ╎list element: *.test.ex
+   domain.com in "test.ex : *.test.ex"? no (end of list)
+  end sublist local_domains
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
 domain.com in "! +local_domains"? yes (end of list)
  ╭considering: $local_part
+ ├──────value: usery
+            ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
  ├──expanding: $local_part
  ╰─────result: usery
             ╰──(tainted)
-domain.com in "*"? yes (matched "*")
-Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ...  connected
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... 127.0.0.1 in hosts_try_fastopen?
+ list element: 
+ connected
  ╭considering: $primary_hostname
  ╭considering: $primary_hostname
+ ├──────value: myhost.test.ex
  ├──expanding: $primary_hostname
  ╰─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
  ├──expanding: $primary_hostname
  ╰─────result: myhost.test.ex
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -1084,12 +1308,49 @@ Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ...  connected
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
 cmd buf flush ddd bytes
   SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
          250-SIZE 52428800
+         250-LIMITS MAILMAX=1000 RCPTMAX=50000
          250-8BITMIME
          250-PIPELINING
          250-STARTTLS
          250 HELP
          250-8BITMIME
          250-PIPELINING
          250-STARTTLS
          250 HELP
+ ╭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}}
+  ├──expanding: $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}}
+  ├──expanding: .outlook.com\$
+  ╰─────result: .outlook.com$
+  ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}} {$1}}
+  ├──────value: 
+  ├───scanning: }{\N^250-([\w.]+)\s\N}}} {$1}}
+  ├──expanding: $item
+  ├─────result: 
+  ╰───skipping: result is not used
+  ╭───scanning: \N^250-([\w.]+)\s\N}}} {$1}}
+  ├──protected: ^250-([\w.]+)\s
+  ├───scanning: }}} {$1}}
+  ├──expanding: \N^250-([\w.]+)\s\N
+  ├─────result: ^250-([\w.]+)\s
+  ╰───skipping: result is not used
+ ├──condition: and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}}
+ ├─────result: false
+  ╭───scanning: $1}}
+  ├───scanning: }}
+  ├──expanding: $1
+  ├─────result: 
+  ╰───skipping: result is not used
+ ├──expanding: ${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}{*}{:}}
  ╭considering: ${if eq {$address_data}{usery}{*}{:}}
   ╭considering: $address_data}{usery}{*}{:}}
+  ├──────value: usery
+             ╰──(tainted)
   ├considering: }{usery}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: usery
   ├considering: }{usery}{*}{:}}
   ├──expanding: $address_data
   ╰─────result: usery
@@ -1114,7 +1375,9 @@ cmd buf flush ddd bytes
   ╰───skipping: result is not used
  ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
  ╰─────result: *
   ╰───skipping: result is not used
  ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
  ╰─────result: *
-127.0.0.1 in hosts_avoid_tls? yes (matched "*")
+127.0.0.1 in hosts_avoid_tls?
+ list element: *
+ 127.0.0.1 in hosts_avoid_tls? yes (matched "*")
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
 not using DSN
 127.0.0.1 in hosts_avoid_pipelining? no (option unset)
 using PIPELINING
 not using DSN
@@ -1168,6 +1431,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: 
   ├───scanning: 
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
   ├───scanning: 
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
@@ -1215,6 +1479,7 @@ end of inline ACL: ACCEPT
    ╎ ${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}}
+   ╎├──────value: CALLER
    ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name)
    ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
    ╎ }}(Exim $version_number)
    ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name)
    ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
    ╎ }}(Exim $version_number)
@@ -1261,6 +1526,8 @@ end of inline ACL: ACCEPT
        ${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}}
+   ├──────value: myhost.test.ex
+              ╰──(tainted)
    ├considering: )
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
    ├considering: )
        }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
@@ -1306,6 +1573,7 @@ end of inline ACL: ACCEPT
        ${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}}
+ ├──────value: myhost.test.ex
  ├considering:  ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
  ├considering:  ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -1330,6 +1598,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: local-esmtp
   ├considering:  }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
   ├considering:  }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -1350,6 +1619,7 @@ end of inline ACL: ACCEPT
        ${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}}
+       ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──expanding:  ($tls_in_ver)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──expanding:  ($tls_in_ver)
@@ -1375,6 +1645,7 @@ end of inline ACL: ACCEPT
        ${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}}
+  ├──────value: 
   ├───scanning: 
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
   ├───scanning: 
        }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
@@ -1402,6 +1673,7 @@ end of inline ACL: ACCEPT
        ${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}}
+ ├──────value: x.yz
  ├considering: )
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
  ├considering: )
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
@@ -1420,6 +1692,7 @@ end of inline ACL: ACCEPT
   ├considering: $sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├considering: $sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
+  ├──────value: CALLER@myhost.test.ex
   ├considering: >)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├considering: >)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
@@ -1439,6 +1712,7 @@ end of inline ACL: ACCEPT
  ├───────text: id 
  ├considering: $message_exim_id${if def:received_for {
        for $received_for}}
  ├───────text: id 
  ├considering: $message_exim_id${if def:received_for {
        for $received_for}}
+ ├──────value: 10HmbB-000000005vi-0000
  ├considering: ${if def:received_for {
        for $received_for}}
  ├──condition: def:received_for
  ├considering: ${if def:received_for {
        for $received_for}}
  ├──condition: def:received_for
@@ -1448,6 +1722,8 @@ end of inline ACL: ACCEPT
   ├───────text: 
        for 
   ├considering: $received_for}}
   ├───────text: 
        for 
   ├considering: $received_for}}
+  ├──────value: usery@domain.com
+             ╰──(tainted)
   ├considering: }}
   ├──expanding: 
        for $received_for
   ├considering: }}
   ├──expanding: 
        for $received_for
@@ -1467,7 +1743,7 @@ end of inline ACL: ACCEPT
  ╰─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
  ╰─────result: Received: from CALLER (helo=myhost.test.ex)
        by myhost.test.ex with local-esmtp (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
-       id 10HmbB-0005vi-00
+       id 10HmbB-000000005vi-0000
        for usery@domain.com
             ╰──(tainted)
 ----------- start cutthrough headers send -----------
        for usery@domain.com
             ╰──(tainted)
 ----------- start cutthrough headers send -----------
@@ -1476,19 +1752,20 @@ end of inline ACL: ACCEPT
  ├──expanding: ${tod_full}
  ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
  ├──expanding: ${tod_full}
  ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
   SMTP>> .
-  SMTP<< 250 OK id=10HmbC-0005vi-00
+  SMTP<< 250 OK id=10HmbC-000000005vi-0000
 LOG: MAIN
 LOG: MAIN
-  >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbC-0005vi-00"
+  >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbC-000000005vi-0000"
   SMTP>> QUIT
   SMTP<< 221 myhost.test.ex closing connection
   SMTP(close)>>
   SMTP>> QUIT
   SMTP<< 221 myhost.test.ex closing connection
   SMTP(close)>>
+cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221'
 ----------- cutthrough shutdown (delivered) ------------
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
 LOG: MAIN
   Completed
 LOG: smtp_connection MAIN
 ----------- cutthrough shutdown (delivered) ------------
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
 LOG: MAIN
   Completed
 LOG: smtp_connection MAIN
-  SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
+  SMTP connection from CALLER D=qqs closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 
 ******** SERVER ********
 
 ******** SERVER ********