X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/ec4b68e5d820109e5954329013a911d4032bc4dc..6397b292615a5ffb9fdb5bd305736e2ef5f00e0d:/test/stderr/5410?ds=inline diff --git a/test/stderr/5410 b/test/stderr/5410 index f8b31a750..0461d84ed 100644 --- a/test/stderr/5410 +++ b/test/stderr/5410 @@ -1,149 +1,269 @@ 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? no (end of list) 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: - SMTP<< 250 OK SMTP>> RCPT TO: +cmd buf flush ddd bytes +sync_responses expect mail + SMTP<< 250 OK +sync_responses expect rcpt 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 ) - -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 ) + + ├──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 ) + 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=TLSv1:AES256-SHA: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 @@ -151,131 +271,241 @@ LOG: MAIN Completed LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) 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: - SMTP<< 250 OK SMTP>> RCPT TO: +cmd buf flush ddd bytes +sync_responses expect mail + SMTP<< 250 OK +sync_responses expect rcpt 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 ) - -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 ) + + ├──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 ) + 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 @@ -283,131 +513,241 @@ LOG: MAIN Completed LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) 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: - SMTP<< 250 OK SMTP>> RCPT TO: +cmd buf flush ddd bytes +sync_responses expect mail + SMTP<< 250 OK +sync_responses expect rcpt 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 ) - -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 ) + + ├──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 ) + 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 @@ -415,6 +755,6 @@ LOG: MAIN Completed LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>> ******** SERVER ********