X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/ce25e2982bde749c219357bd5983d2735277919f..0cd6ae500bb94033ce32550e1ae17e8300f86920:/test/stderr/5410?ds=sidebyside diff --git a/test/stderr/5410 b/test/stderr/5410 index 946c48a2a..a554fd953 100644 --- a/test/stderr/5410 +++ b/test/stderr/5410 @@ -4,40 +4,41 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ╭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 + ╰─────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 "*") - ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - ┌considering: SERVER}{server}{queue}{cutthrough}} + ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ╭considering: SERVER}{server}{queue}{cutthrough}} ├──expanding: SERVER - └─────result: SERVER - ┌considering: server}{queue}{cutthrough}} + ╰─────result: SERVER + ╭considering: server}{queue}{cutthrough}} ├──expanding: server - └─────result: server + ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false - ┌───scanning: queue}{cutthrough}} + ╭───scanning: queue}{cutthrough}} ├──expanding: queue ├─────result: queue - └───skipping: result is not used - ┌considering: cutthrough}} + ╰───skipping: result is not used + ╭considering: cutthrough}} ├──expanding: cutthrough - └─────result: cutthrough + ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - └─────result: 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) - ┌considering: $local_part + ╭considering: $local_part ├──expanding: $local_part - └─────result: userx + ╰─────result: userx + ╰──(tainted) domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -45,14 +46,15 @@ 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) - ┌considering: $local_part + ╭considering: $local_part ├──expanding: $local_part - └─────result: userx + ╰─────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 - ┌considering: $primary_hostname +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 + ╰─────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 @@ -63,49 +65,49 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - ┌considering: ${if eq {$address_data}{usery}{*}{:}} - ┌considering: $address_data}{usery}{*}{:}} + ╭considering: ${if eq {$address_data}{usery}{*}{:}} + ╭considering: $address_data}{usery}{*}{:}} ├──expanding: $address_data - └─────result: userx - ┌considering: usery}{*}{:}} + ╰─────result: userx + ╰──(tainted) + ╭considering: usery}{*}{:}} ├──expanding: usery - └─────result: usery + ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: false - ┌───scanning: *}{:}} + ╭───scanning: *}{:}} ├──expanding: * ├─────result: * - └───skipping: result is not used - ┌considering: :}} + ╰───skipping: result is not used + ╭considering: :}} ├──expanding: : - └─────result: : + ╰─────result: : ├──expanding: ${if eq {$address_data}{usery}{*}{:}} - └─────result: : + ╰─────result: : 127.0.0.1 in hosts_avoid_tls? no (end of list) - ┌considering: ${if eq {$address_data}{userz}{*}{:}} - ┌considering: $address_data}{userz}{*}{:}} + ╭considering: ${if eq {$address_data}{userz}{*}{:}} + ╭considering: $address_data}{userz}{*}{:}} ├──expanding: $address_data - └─────result: userx - ┌considering: userz}{*}{:}} + ╰─────result: userx + ╰──(tainted) + ╭considering: userz}{*}{:}} ├──expanding: userz - └─────result: userz + ╰─────result: userz ├──condition: eq {$address_data}{userz} ├─────result: false - ┌───scanning: *}{:}} + ╭───scanning: *}{:}} ├──expanding: * ├─────result: * - └───skipping: result is not used - ┌considering: :}} + ╰───skipping: result is not used + ╭considering: :}} ├──expanding: : - └─────result: : + ╰─────result: : ├──expanding: ${if eq {$address_data}{userz}{*}{:}} - └─────result: : + ╰─────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 hosts_require_ocsp? no (option unset) -127.0.0.1 in hosts_request_ocsp? yes (matched "*") 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 @@ -122,29 +124,33 @@ not using DSN SMTP>> MAIL FROM: 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 - ┌considering: ${tod_full} + ╭considering: ${tod_full} ├──expanding: ${tod_full} - └─────result: Tue, 2 Mar 1999 09:44:33 +0000 - ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ╰─────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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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 + ╭───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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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}} @@ -152,88 +158,110 @@ end of inline ACL: ACCEPT ├─────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}} (Exim $version_number) + ╰───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_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}} (Exim $version_number) + ╭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_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}} (Exim $version_number) + ╎╭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_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 + ╎╰─────result: CALLER ├──expanding: from ${quote_local_part:$sender_ident} - └─────result: from CALLER + ╰─────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}} (Exim $version_number) + ╭considering: (helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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) + ╰─────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) + ╰─────result: from CALLER (helo=myhost.test.ex) + ╰──(tainted) ├──condition: def:received_protocol ├─────result: true - ┌considering: with $received_protocol}} (Exim $version_number) + ╭considering: with $received_protocol }}${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 + ├──expanding: with $received_protocol + ╰─────result: with local-esmtp + ├──condition: def:tls_in_cipher_std + ├─────result: false + ╭───scanning: 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 $tls_in_cipher_std + + ├─────result: tls + + ╰───skipping: result is not used ├──condition: def:sender_address ├─────result: true - ┌considering: (envelope-from <$sender_address>) + ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ├──expanding: (envelope-from <$sender_address>) - └─────result: (envelope-from ) + ╰─────result: (envelope-from ) ├──condition: def:received_for ├─────result: true - ┌considering: + ╭considering: for $received_for}} ├──expanding: for $received_for - └─────result: + ╰─────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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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) + ╰─────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} + ╭considering: ${tod_full} ├──expanding: ${tod_full} - └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . 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:ke-RSA-AES256-SHA: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-0005vi-00" SMTP>> QUIT SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> @@ -251,40 +279,41 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ╭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 + ╰─────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 "*") - ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - ┌considering: SERVER}{server}{queue}{cutthrough}} + ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ╭considering: SERVER}{server}{queue}{cutthrough}} ├──expanding: SERVER - └─────result: SERVER - ┌considering: server}{queue}{cutthrough}} + ╰─────result: SERVER + ╭considering: server}{queue}{cutthrough}} ├──expanding: server - └─────result: server + ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false - ┌───scanning: queue}{cutthrough}} + ╭───scanning: queue}{cutthrough}} ├──expanding: queue ├─────result: queue - └───skipping: result is not used - ┌considering: cutthrough}} + ╰───skipping: result is not used + ╭considering: cutthrough}} ├──expanding: cutthrough - └─────result: cutthrough + ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - └─────result: 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) - ┌considering: $local_part + ╭considering: $local_part ├──expanding: $local_part - └─────result: usery + ╰─────result: usery + ╰──(tainted) domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -292,14 +321,15 @@ 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) - ┌considering: $local_part + ╭considering: $local_part ├──expanding: $local_part - └─────result: usery + ╰─────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 - ┌considering: $primary_hostname +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 + ╰─────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 @@ -310,24 +340,25 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - ┌considering: ${if eq {$address_data}{usery}{*}{:}} - ┌considering: $address_data}{usery}{*}{:}} + ╭considering: ${if eq {$address_data}{usery}{*}{:}} + ╭considering: $address_data}{usery}{*}{:}} ├──expanding: $address_data - └─────result: usery - ┌considering: usery}{*}{:}} + ╰─────result: usery + ╰──(tainted) + ╭considering: usery}{*}{:}} ├──expanding: usery - └─────result: usery + ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true - ┌considering: *}{:}} + ╭considering: *}{:}} ├──expanding: * - └─────result: * - ┌───scanning: :}} + ╰─────result: * + ╭───scanning: :}} ├──expanding: : ├─────result: : - └───skipping: result is not used + ╰───skipping: result is not used ├──expanding: ${if eq {$address_data}{usery}{*}{:}} - └─────result: * + ╰─────result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING @@ -336,29 +367,33 @@ not using DSN SMTP>> MAIL FROM: 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 - ┌considering: ${tod_full} + ╭considering: ${tod_full} ├──expanding: ${tod_full} - └─────result: Tue, 2 Mar 1999 09:44:33 +0000 - ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ╰─────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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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 + ╭───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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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}} @@ -366,84 +401,106 @@ end of inline ACL: ACCEPT ├─────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}} (Exim $version_number) + ╰───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_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}} (Exim $version_number) + ╭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_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}} (Exim $version_number) + ╎╭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_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 + ╎╰─────result: CALLER ├──expanding: from ${quote_local_part:$sender_ident} - └─────result: from CALLER + ╰─────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}} (Exim $version_number) + ╭considering: (helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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) + ╰─────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) + ╰─────result: from CALLER (helo=myhost.test.ex) + ╰──(tainted) ├──condition: def:received_protocol ├─────result: true - ┌considering: with $received_protocol}} (Exim $version_number) + ╭considering: with $received_protocol }}${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_cipher_std + ├─────result: false + ╭───scanning: 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 + ├──expanding: tls $tls_in_cipher_std + + ├─────result: tls + + ╰───skipping: result is not used ├──condition: def:sender_address ├─────result: true - ┌considering: (envelope-from <$sender_address>) + ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ├──expanding: (envelope-from <$sender_address>) - └─────result: (envelope-from ) + ╰─────result: (envelope-from ) ├──condition: def:received_for ├─────result: true - ┌considering: + ╭considering: for $received_for}} ├──expanding: for $received_for - └─────result: + ╰─────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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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) + ╰─────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} + ╭considering: ${tod_full} ├──expanding: ${tod_full} - └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbA-0005vi-00 LOG: MAIN @@ -465,40 +522,41 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ╭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 + ╰─────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 "*") - ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - ┌considering: SERVER}{server}{queue}{cutthrough}} + ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ╭considering: SERVER}{server}{queue}{cutthrough}} ├──expanding: SERVER - └─────result: SERVER - ┌considering: server}{queue}{cutthrough}} + ╰─────result: SERVER + ╭considering: server}{queue}{cutthrough}} ├──expanding: server - └─────result: server + ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false - ┌───scanning: queue}{cutthrough}} + ╭───scanning: queue}{cutthrough}} ├──expanding: queue ├─────result: queue - └───skipping: result is not used - ┌considering: cutthrough}} + ╰───skipping: result is not used + ╭considering: cutthrough}} ├──expanding: cutthrough - └─────result: cutthrough + ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - └─────result: 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) - ┌considering: $local_part + ╭considering: $local_part ├──expanding: $local_part - └─────result: usery + ╰─────result: usery + ╰──(tainted) domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -506,14 +564,15 @@ 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) - ┌considering: $local_part + ╭considering: $local_part ├──expanding: $local_part - └─────result: usery + ╰─────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 - ┌considering: $primary_hostname +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 + ╰─────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 @@ -524,24 +583,25 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - ┌considering: ${if eq {$address_data}{usery}{*}{:}} - ┌considering: $address_data}{usery}{*}{:}} + ╭considering: ${if eq {$address_data}{usery}{*}{:}} + ╭considering: $address_data}{usery}{*}{:}} ├──expanding: $address_data - └─────result: usery - ┌considering: usery}{*}{:}} + ╰─────result: usery + ╰──(tainted) + ╭considering: usery}{*}{:}} ├──expanding: usery - └─────result: usery + ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true - ┌considering: *}{:}} + ╭considering: *}{:}} ├──expanding: * - └─────result: * - ┌───scanning: :}} + ╰─────result: * + ╭───scanning: :}} ├──expanding: : ├─────result: : - └───skipping: result is not used + ╰───skipping: result is not used ├──expanding: ${if eq {$address_data}{usery}{*}{:}} - └─────result: * + ╰─────result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING @@ -550,29 +610,33 @@ not using DSN SMTP>> MAIL FROM: 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 - ┌considering: ${tod_full} + ╭considering: ${tod_full} ├──expanding: ${tod_full} - └─────result: Tue, 2 Mar 1999 09:44:33 +0000 - ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ╰─────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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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 + ╭───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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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}} @@ -580,84 +644,106 @@ end of inline ACL: ACCEPT ├─────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}} (Exim $version_number) + ╰───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_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}} (Exim $version_number) + ╭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_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}} (Exim $version_number) + ╎╭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_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 + ╎╰─────result: CALLER ├──expanding: from ${quote_local_part:$sender_ident} - └─────result: from CALLER + ╰─────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}} (Exim $version_number) + ╭considering: (helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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) + ╰─────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) + ╰─────result: from CALLER (helo=myhost.test.ex) + ╰──(tainted) ├──condition: def:received_protocol ├─────result: true - ┌considering: with $received_protocol}} (Exim $version_number) + ╭considering: with $received_protocol }}${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 + ├──expanding: with $received_protocol + ╰─────result: with local-esmtp + ├──condition: def:tls_in_cipher_std + ├─────result: false + ╭───scanning: 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 $tls_in_cipher_std + + ├─────result: tls + + ╰───skipping: result is not used ├──condition: def:sender_address ├─────result: true - ┌considering: (envelope-from <$sender_address>) + ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ├──expanding: (envelope-from <$sender_address>) - └─────result: (envelope-from ) + ╰─────result: (envelope-from ) ├──condition: def:received_for ├─────result: true - ┌considering: + ╭considering: for $received_for}} ├──expanding: for $received_for - └─────result: + ╰─────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}} (Exim $version_number) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${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) + ╰─────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} + ╭considering: ${tod_full} ├──expanding: ${tod_full} - └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbC-0005vi-00 LOG: MAIN