Exim version x.yz ....
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
configuration file is TESTSUITE/test-config
admin user
in hosts_connection_nolog? no (option unset)
LOG: smtp_connection MAIN
SMTP connection from CALLER
-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
+ ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
+ ├──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
+ in dsn_advertise_hosts? no (option unset)
in pipelining_advertise_hosts? yes (matched "*")
+ in chunking_advertise_hosts? no (end of list)
in tls_advertise_hosts? yes (matched "*")
-expanding: SERVER
- result: SERVER
-expanding: server
- result: server
-condition: eq {SERVER}{server}
- result: false
-expanding: queue
- result: queue
-skipping: result is not used
-expanding: cutthrough
- result: cutthrough
-expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
- result: cutthrough
+ ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+ ╭considering: SERVER}{server}{queue}{cutthrough}}
+ ├──expanding: SERVER
+ ╰─────result: SERVER
+ ╭considering: server}{queue}{cutthrough}}
+ ├──expanding: server
+ ╰─────result: server
+ ├──condition: eq {SERVER}{server}
+ ├─────result: false
+ ╭───scanning: queue}{cutthrough}}
+ ├──expanding: queue
+ ├─────result: queue
+ ╰───skipping: result is not used
+ ╭considering: cutthrough}}
+ ├──expanding: cutthrough
+ ╰─────result: cutthrough
+ ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
+ ╰─────result: cutthrough
using ACL "cutthrough"
-processing "accept"
+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"? yes (end of list)
-expanding: $local_part
- result: userx
+ ╭considering: $local_part
+ ├──expanding: $local_part
+ ╰─────result: userx
+ ╰──(tainted)
domain.com in "*"? yes (matched "*")
----------- 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"? yes (end of list)
-expanding: $local_part
- result: userx
+ ╭considering: $local_part
+ ├──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
-expanding: $primary_hostname
- result: myhost.test.ex
+Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
+ ╭considering: $primary_hostname
+ ├──expanding: $primary_hostname
+ ╰─────result: myhost.test.ex
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
127.0.0.1 in hosts_avoid_esmtp? no (option unset)
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-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
-expanding: $address_data
- result: userx
-expanding: usery
- result: usery
-condition: eq {$address_data}{usery}
- result: false
-expanding: *
- result: *
-skipping: result is not used
-expanding: :
- result: :
-expanding: ${if eq {$address_data}{usery}{*}{:}}
- result: :
+ ╭considering: ${if eq {$address_data}{usery}{*}{:}}
+ ╭considering: $address_data}{usery}{*}{:}}
+ ├──expanding: $address_data
+ ╰─────result: userx
+ ╰──(tainted)
+ ╭considering: usery}{*}{:}}
+ ├──expanding: usery
+ ╰─────result: usery
+ ├──condition: eq {$address_data}{usery}
+ ├─────result: false
+ ╭───scanning: *}{:}}
+ ├──expanding: *
+ ├─────result: *
+ ╰───skipping: result is not used
+ ╭considering: :}}
+ ├──expanding: :
+ ╰─────result: :
+ ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
+ ╰─────result: :
127.0.0.1 in hosts_avoid_tls? no (end of list)
-expanding: $address_data
- result: userx
-expanding: userz
- result: userz
-condition: eq {$address_data}{userz}
- result: false
-expanding: *
- result: *
-skipping: result is not used
-expanding: :
- result: :
-expanding: ${if eq {$address_data}{userz}{*}{:}}
- result: :
+ ╭considering: ${if eq {$address_data}{userz}{*}{:}}
+ ╭considering: $address_data}{userz}{*}{:}}
+ ├──expanding: $address_data
+ ╰─────result: userx
+ ╰──(tainted)
+ ╭considering: userz}{*}{:}}
+ ├──expanding: userz
+ ╰─────result: userz
+ ├──condition: eq {$address_data}{userz}
+ ├─────result: false
+ ╭───scanning: *}{:}}
+ ├──expanding: *
+ ├─────result: *
+ ╰───skipping: result is not used
+ ╭considering: :}}
+ ├──expanding: :
+ ╰─────result: :
+ ├──expanding: ${if eq {$address_data}{userz}{*}{:}}
+ ╰─────result: :
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 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 "*")
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-8BITMIME
250-PIPELINING
250 HELP
+127.0.0.1 in hosts_avoid_pipelining? no (option unset)
+using PIPELINING
+not using DSN
+127.0.0.1 in hosts_require_auth? no (option unset)
SMTP>> MAIL FROM:<CALLER@myhost.test.ex>
- SMTP<< 250 OK
SMTP>> RCPT TO:<userx@domain.com>
+cmd buf flush ddd bytes
+sync_responses expect mail
+ SMTP<< 250 OK
+sync_responses expect rcpt for userx@domain.com
SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
----------- end cutthrough setup ------------
-processing "accept"
+processing "accept" (TESTSUITE/test-config 55)
accept: condition test succeeded in inline ACL
+end of inline ACL: ACCEPT
SMTP>> DATA
SMTP<< 354 Enter message, ending with "." on a line by itself
-expanding: ${tod_full}
- result: Tue, 2 Mar 1999 09:44:33 +0000
-condition: def:sender_rcvhost
- result: false
-expanding: from $sender_rcvhost
-
- result: from
-
-skipping: result is not used
-condition: def:sender_ident
- result: true
-expanding: $sender_ident
- result: CALLER
-expanding: from ${quote_local_part:$sender_ident}
- result: from CALLER
-condition: def:sender_helo_name
- result: true
-expanding: (helo=$sender_helo_name)
-
- result: (helo=myhost.test.ex)
-
-expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- }}
- result: from CALLER (helo=myhost.test.ex)
-
-condition: def:received_protocol
- result: true
-expanding: with $received_protocol
- result: with local-esmtp
-condition: def:sender_address
- result: true
-expanding: (envelope-from <$sender_address>)
-
- result: (envelope-from <CALLER@myhost.test.ex>)
-
-condition: def:received_for
- result: true
-expanding:
- for $received_for
- result:
- for userx@domain.com
-PDKIM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-expanding: ${tod_full}
- result: Tue, 2 Mar 1999 09:44:33 +0000
+ ╭considering: ${tod_full}
+ ├──expanding: ${tod_full}
+ ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
+ ╭considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──condition: def:sender_rcvhost
+ ├─────result: false
+ ╭───scanning: from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: from $sender_rcvhost
+
+ ├─────result: from
+
+ ╰───skipping: result is not used
+ ╭considering: ${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──condition: def:sender_ident
+ ├─────result: true
+ ╭considering: 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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ╎╭considering: $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
+ ╎ }}(Exim $version_number)
+ ╎ ${if def:sender_address {(envelope-from <$sender_address>)
+ ╎ }}id $message_exim_id${if def:received_for {
+ ╎ for $received_for}}
+ ╎├──expanding: $sender_ident
+ ╎╰─────result: CALLER
+ ├──expanding: from ${quote_local_part:$sender_ident}
+ ╰─────result: from CALLER
+ ├──condition: def:sender_helo_name
+ ├─────result: true
+ ╭considering: (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)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: (helo=$sender_helo_name)
+
+ ╰─────result: (helo=myhost.test.ex)
+
+ ╰──(tainted)
+ ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+ }}
+ ╰─────result: from CALLER (helo=myhost.test.ex)
+
+ ╰──(tainted)
+ ├──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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: with $received_protocol
+ ╰─────result: with local-esmtp
+ ├──condition: def:tls_in_ver
+ ├─────result: false
+ ╭───scanning: ($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>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: ($tls_in_ver)
+ ├─────result: ()
+ ╰───skipping: result is not used
+ ├──condition: def:sender_address
+ ├─────result: true
+ ╭considering: (envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: (envelope-from <$sender_address>)
+
+ ╰─────result: (envelope-from <CALLER@myhost.test.ex>)
+
+ ├──condition: def:received_for
+ ├─────result: true
+ ╭considering:
+ for $received_for}}
+ ├──expanding:
+ for $received_for
+ ╰─────result:
+ for userx@domain.com
+ ╰──(tainted)
+ ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ╰─────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
+ for userx@domain.com
+ ╰──(tainted)
+----------- start cutthrough headers send -----------
+----------- done cutthrough headers send ------------
+ ╭considering: ${tod_full}
+ ├──expanding: ${tod_full}
+ ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> .
- SMTP<< 250 OK id=10HmaX-0005vi-00
+ SMTP<< 250 OK id=10HmaY-0005vi-00
LOG: MAIN
- >> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 C="250 OK id=10HmaX-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-0005vi-00"
SMTP>> QUIT
+ SMTP<< 221 myhost.test.ex closing connection
+ SMTP(close)>>
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
configuration file is TESTSUITE/test-config
admin user
in hosts_connection_nolog? no (option unset)
LOG: smtp_connection MAIN
SMTP connection from CALLER
-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
+ ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
+ ├──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
+ in dsn_advertise_hosts? no (option unset)
in pipelining_advertise_hosts? yes (matched "*")
+ in chunking_advertise_hosts? no (end of list)
in tls_advertise_hosts? yes (matched "*")
-expanding: SERVER
- result: SERVER
-expanding: server
- result: server
-condition: eq {SERVER}{server}
- result: false
-expanding: queue
- result: queue
-skipping: result is not used
-expanding: cutthrough
- result: cutthrough
-expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
- result: cutthrough
+ ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+ ╭considering: SERVER}{server}{queue}{cutthrough}}
+ ├──expanding: SERVER
+ ╰─────result: SERVER
+ ╭considering: server}{queue}{cutthrough}}
+ ├──expanding: server
+ ╰─────result: server
+ ├──condition: eq {SERVER}{server}
+ ├─────result: false
+ ╭───scanning: queue}{cutthrough}}
+ ├──expanding: queue
+ ├─────result: queue
+ ╰───skipping: result is not used
+ ╭considering: cutthrough}}
+ ├──expanding: cutthrough
+ ╰─────result: cutthrough
+ ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
+ ╰─────result: cutthrough
using ACL "cutthrough"
-processing "accept"
+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"? yes (end of list)
-expanding: $local_part
- result: usery
+ ╭considering: $local_part
+ ├──expanding: $local_part
+ ╰─────result: usery
+ ╰──(tainted)
domain.com in "*"? yes (matched "*")
----------- 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"? yes (end of list)
-expanding: $local_part
- result: usery
+ ╭considering: $local_part
+ ├──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
-expanding: $primary_hostname
- result: myhost.test.ex
+Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
+ ╭considering: $primary_hostname
+ ├──expanding: $primary_hostname
+ ╰─────result: myhost.test.ex
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
127.0.0.1 in hosts_avoid_esmtp? no (option unset)
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-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
-expanding: $address_data
- result: usery
-expanding: usery
- result: usery
-condition: eq {$address_data}{usery}
- result: true
-expanding: *
- result: *
-expanding: :
- result: :
-skipping: result is not used
-expanding: ${if eq {$address_data}{usery}{*}{:}}
- result: *
+ ╭considering: ${if eq {$address_data}{usery}{*}{:}}
+ ╭considering: $address_data}{usery}{*}{:}}
+ ├──expanding: $address_data
+ ╰─────result: usery
+ ╰──(tainted)
+ ╭considering: usery}{*}{:}}
+ ├──expanding: usery
+ ╰─────result: usery
+ ├──condition: eq {$address_data}{usery}
+ ├─────result: true
+ ╭considering: *}{:}}
+ ├──expanding: *
+ ╰─────result: *
+ ╭───scanning: :}}
+ ├──expanding: :
+ ├─────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_pipelining? no (option unset)
+using PIPELINING
+not using DSN
+127.0.0.1 in hosts_require_auth? no (option unset)
SMTP>> MAIL FROM:<CALLER@myhost.test.ex>
- SMTP<< 250 OK
SMTP>> RCPT TO:<usery@domain.com>
+cmd buf flush ddd bytes
+sync_responses expect mail
+ SMTP<< 250 OK
+sync_responses expect rcpt for usery@domain.com
SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
----------- end cutthrough setup ------------
-processing "accept"
+processing "accept" (TESTSUITE/test-config 55)
accept: condition test succeeded in inline ACL
+end of inline ACL: ACCEPT
SMTP>> DATA
SMTP<< 354 Enter message, ending with "." on a line by itself
-expanding: ${tod_full}
- result: Tue, 2 Mar 1999 09:44:33 +0000
-condition: def:sender_rcvhost
- result: false
-expanding: from $sender_rcvhost
-
- result: from
-
-skipping: result is not used
-condition: def:sender_ident
- result: true
-expanding: $sender_ident
- result: CALLER
-expanding: from ${quote_local_part:$sender_ident}
- result: from CALLER
-condition: def:sender_helo_name
- result: true
-expanding: (helo=$sender_helo_name)
-
- result: (helo=myhost.test.ex)
-
-expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- }}
- result: from CALLER (helo=myhost.test.ex)
-
-condition: def:received_protocol
- result: true
-expanding: with $received_protocol
- result: with local-esmtp
-condition: def:sender_address
- result: true
-expanding: (envelope-from <$sender_address>)
-
- result: (envelope-from <CALLER@myhost.test.ex>)
-
-condition: def:received_for
- result: true
-expanding:
- for $received_for
- result:
- for usery@domain.com
-PDKIM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-expanding: ${tod_full}
- result: Tue, 2 Mar 1999 09:44:33 +0000
+ ╭considering: ${tod_full}
+ ├──expanding: ${tod_full}
+ ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
+ ╭considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──condition: def:sender_rcvhost
+ ├─────result: false
+ ╭───scanning: from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: from $sender_rcvhost
+
+ ├─────result: from
+
+ ╰───skipping: result is not used
+ ╭considering: ${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──condition: def:sender_ident
+ ├─────result: true
+ ╭considering: 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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ╎╭considering: $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
+ ╎ }}(Exim $version_number)
+ ╎ ${if def:sender_address {(envelope-from <$sender_address>)
+ ╎ }}id $message_exim_id${if def:received_for {
+ ╎ for $received_for}}
+ ╎├──expanding: $sender_ident
+ ╎╰─────result: CALLER
+ ├──expanding: from ${quote_local_part:$sender_ident}
+ ╰─────result: from CALLER
+ ├──condition: def:sender_helo_name
+ ├─────result: true
+ ╭considering: (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)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: (helo=$sender_helo_name)
+
+ ╰─────result: (helo=myhost.test.ex)
+
+ ╰──(tainted)
+ ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+ }}
+ ╰─────result: from CALLER (helo=myhost.test.ex)
+
+ ╰──(tainted)
+ ├──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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: with $received_protocol
+ ╰─────result: with local-esmtp
+ ├──condition: def:tls_in_ver
+ ├─────result: false
+ ╭───scanning: ($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>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: ($tls_in_ver)
+ ├─────result: ()
+ ╰───skipping: result is not used
+ ├──condition: def:sender_address
+ ├─────result: true
+ ╭considering: (envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: (envelope-from <$sender_address>)
+
+ ╰─────result: (envelope-from <CALLER@myhost.test.ex>)
+
+ ├──condition: def:received_for
+ ├─────result: true
+ ╭considering:
+ for $received_for}}
+ ├──expanding:
+ for $received_for
+ ╰─────result:
+ for usery@domain.com
+ ╰──(tainted)
+ ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ╰─────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
+ for usery@domain.com
+ ╰──(tainted)
+----------- start cutthrough headers send -----------
+----------- done cutthrough headers send ------------
+ ╭considering: ${tod_full}
+ ├──expanding: ${tod_full}
+ ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> .
- SMTP<< 250 OK id=10HmaZ-0005vi-00
+ SMTP<< 250 OK id=10HmbA-0005vi-00
LOG: MAIN
- >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmaZ-0005vi-00"
+ >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-0005vi-00"
SMTP>> QUIT
+ SMTP<< 221 myhost.test.ex closing connection
+ SMTP(close)>>
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
configuration file is TESTSUITE/test-config
admin user
in hosts_connection_nolog? no (option unset)
LOG: smtp_connection MAIN
SMTP connection from CALLER
-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
+ ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full
+ ├──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
+ in dsn_advertise_hosts? no (option unset)
in pipelining_advertise_hosts? yes (matched "*")
+ in chunking_advertise_hosts? no (end of list)
in tls_advertise_hosts? yes (matched "*")
-expanding: SERVER
- result: SERVER
-expanding: server
- result: server
-condition: eq {SERVER}{server}
- result: false
-expanding: queue
- result: queue
-skipping: result is not used
-expanding: cutthrough
- result: cutthrough
-expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
- result: cutthrough
+ ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}}
+ ╭considering: SERVER}{server}{queue}{cutthrough}}
+ ├──expanding: SERVER
+ ╰─────result: SERVER
+ ╭considering: server}{queue}{cutthrough}}
+ ├──expanding: server
+ ╰─────result: server
+ ├──condition: eq {SERVER}{server}
+ ├─────result: false
+ ╭───scanning: queue}{cutthrough}}
+ ├──expanding: queue
+ ├─────result: queue
+ ╰───skipping: result is not used
+ ╭considering: cutthrough}}
+ ├──expanding: cutthrough
+ ╰─────result: cutthrough
+ ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}}
+ ╰─────result: cutthrough
using ACL "cutthrough"
-processing "accept"
+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"? yes (end of list)
-expanding: $local_part
- result: usery
+ ╭considering: $local_part
+ ├──expanding: $local_part
+ ╰─────result: usery
+ ╰──(tainted)
domain.com in "*"? yes (matched "*")
----------- 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"? yes (end of list)
-expanding: $local_part
- result: usery
+ ╭considering: $local_part
+ ├──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
-expanding: $primary_hostname
- result: myhost.test.ex
+Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected
+ ╭considering: $primary_hostname
+ ├──expanding: $primary_hostname
+ ╰─────result: myhost.test.ex
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
127.0.0.1 in hosts_avoid_esmtp? no (option unset)
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-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
-expanding: $address_data
- result: usery
-expanding: usery
- result: usery
-condition: eq {$address_data}{usery}
- result: true
-expanding: *
- result: *
-expanding: :
- result: :
-skipping: result is not used
-expanding: ${if eq {$address_data}{usery}{*}{:}}
- result: *
+ ╭considering: ${if eq {$address_data}{usery}{*}{:}}
+ ╭considering: $address_data}{usery}{*}{:}}
+ ├──expanding: $address_data
+ ╰─────result: usery
+ ╰──(tainted)
+ ╭considering: usery}{*}{:}}
+ ├──expanding: usery
+ ╰─────result: usery
+ ├──condition: eq {$address_data}{usery}
+ ├─────result: true
+ ╭considering: *}{:}}
+ ├──expanding: *
+ ╰─────result: *
+ ╭───scanning: :}}
+ ├──expanding: :
+ ├─────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_pipelining? no (option unset)
+using PIPELINING
+not using DSN
+127.0.0.1 in hosts_require_auth? no (option unset)
SMTP>> MAIL FROM:<CALLER@myhost.test.ex>
- SMTP<< 250 OK
SMTP>> RCPT TO:<usery@domain.com>
+cmd buf flush ddd bytes
+sync_responses expect mail
+ SMTP<< 250 OK
+sync_responses expect rcpt for usery@domain.com
SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
----------- end cutthrough setup ------------
-processing "accept"
+processing "accept" (TESTSUITE/test-config 55)
accept: condition test succeeded in inline ACL
+end of inline ACL: ACCEPT
SMTP>> DATA
SMTP<< 354 Enter message, ending with "." on a line by itself
-expanding: ${tod_full}
- result: Tue, 2 Mar 1999 09:44:33 +0000
-condition: def:sender_rcvhost
- result: false
-expanding: from $sender_rcvhost
-
- result: from
-
-skipping: result is not used
-condition: def:sender_ident
- result: true
-expanding: $sender_ident
- result: CALLER
-expanding: from ${quote_local_part:$sender_ident}
- result: from CALLER
-condition: def:sender_helo_name
- result: true
-expanding: (helo=$sender_helo_name)
-
- result: (helo=myhost.test.ex)
-
-expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- }}
- result: from CALLER (helo=myhost.test.ex)
-
-condition: def:received_protocol
- result: true
-expanding: with $received_protocol
- result: with local-esmtp
-condition: def:sender_address
- result: true
-expanding: (envelope-from <$sender_address>)
-
- result: (envelope-from <CALLER@myhost.test.ex>)
-
-condition: def:received_for
- result: true
-expanding:
- for $received_for
- result:
- for usery@domain.com
-PDKIM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-expanding: ${tod_full}
- result: Tue, 2 Mar 1999 09:44:33 +0000
+ ╭considering: ${tod_full}
+ ├──expanding: ${tod_full}
+ ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
+ ╭considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──condition: def:sender_rcvhost
+ ├─────result: false
+ ╭───scanning: from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: from $sender_rcvhost
+
+ ├─────result: from
+
+ ╰───skipping: result is not used
+ ╭considering: ${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──condition: def:sender_ident
+ ├─────result: true
+ ╭considering: 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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ╎╭considering: $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
+ ╎ }}(Exim $version_number)
+ ╎ ${if def:sender_address {(envelope-from <$sender_address>)
+ ╎ }}id $message_exim_id${if def:received_for {
+ ╎ for $received_for}}
+ ╎├──expanding: $sender_ident
+ ╎╰─────result: CALLER
+ ├──expanding: from ${quote_local_part:$sender_ident}
+ ╰─────result: from CALLER
+ ├──condition: def:sender_helo_name
+ ├─────result: true
+ ╭considering: (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)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: (helo=$sender_helo_name)
+
+ ╰─────result: (helo=myhost.test.ex)
+
+ ╰──(tainted)
+ ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+ }}
+ ╰─────result: from CALLER (helo=myhost.test.ex)
+
+ ╰──(tainted)
+ ├──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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: with $received_protocol
+ ╰─────result: with local-esmtp
+ ├──condition: def:tls_in_ver
+ ├─────result: false
+ ╭───scanning: ($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>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: ($tls_in_ver)
+ ├─────result: ()
+ ╰───skipping: result is not used
+ ├──condition: def:sender_address
+ ├─────result: true
+ ╭considering: (envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ├──expanding: (envelope-from <$sender_address>)
+
+ ╰─────result: (envelope-from <CALLER@myhost.test.ex>)
+
+ ├──condition: def:received_for
+ ├─────result: true
+ ╭considering:
+ for $received_for}}
+ ├──expanding:
+ for $received_for
+ ╰─────result:
+ for usery@domain.com
+ ╰──(tainted)
+ ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+ }{${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
+ }}(Exim $version_number)
+ ${if def:sender_address {(envelope-from <$sender_address>)
+ }}id $message_exim_id${if def:received_for {
+ for $received_for}}
+ ╰─────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
+ for usery@domain.com
+ ╰──(tainted)
+----------- start cutthrough headers send -----------
+----------- done cutthrough headers send ------------
+ ╭considering: ${tod_full}
+ ├──expanding: ${tod_full}
+ ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
SMTP>> .
- SMTP<< 250 OK id=10HmbB-0005vi-00
+ SMTP<< 250 OK id=10HmbC-0005vi-00
LOG: MAIN
- >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbB-0005vi-00"
+ >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbC-0005vi-00"
SMTP>> QUIT
+ SMTP<< 221 myhost.test.ex closing connection
+ SMTP(close)>>
----------- cutthrough shutdown (delivered) ------------
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********