diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2022-01-20 10:50:34 +0000 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2022-01-20 10:50:34 +0000 |
commit | 1058096b8c5317376c1df7473f6ca7c543d20715 (patch) | |
tree | 491dfba00e145e6291d3beb33cae54bf37586ecd /test | |
parent | 9dea8f12c7617bcee02319adbb51353b6b35b2f8 (diff) |
Debug: more detail for expansions
Diffstat (limited to 'test')
-rwxr-xr-x | test/runtest | 3 | ||||
-rw-r--r-- | test/stderr/0002 | 127 | ||||
-rw-r--r-- | test/stderr/0092 | 15 | ||||
-rw-r--r-- | test/stderr/0402 | 262 | ||||
-rw-r--r-- | test/stderr/0544 | 249 | ||||
-rw-r--r-- | test/stderr/0620 | 46 | ||||
-rw-r--r-- | test/stderr/3000 | 16 | ||||
-rw-r--r-- | test/stderr/5410 | 706 | ||||
-rw-r--r-- | test/stderr/5420 | 706 |
9 files changed, 2130 insertions, 0 deletions
diff --git a/test/runtest b/test/runtest index cda11da9e..6cc5b3bdb 100755 --- a/test/runtest +++ b/test/runtest @@ -1285,6 +1285,9 @@ RESET_AFTER_EXTRA_LINE_READ: $_ = $line . $_; } + # Different builds will have different lookup types included + s/^search_type \K\d+ \((\w+)\) quoting -1 \(none\)$/NN ($1) quoting -1 (none)/; + # DISABLE_OCSP next if /in hosts_requ(est|ire)_ocsp\? (no|yes)/; diff --git a/test/stderr/0002 b/test/stderr/0002 index 0c34e84c3..81108f28f 100644 --- a/test/stderr/0002 +++ b/test/stderr/0002 @@ -3,36 +3,56 @@ configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid ╭considering: primary_hostname: $primary_hostname + ├───────text: primary_hostname: + ├considering: $primary_hostname ├──expanding: primary_hostname: $primary_hostname ╰─────result: primary_hostname: myhost.test.ex ╭considering: sender_address: $sender_address + ├───────text: sender_address: + ├considering: $sender_address ├──expanding: sender_address: $sender_address ╰─────result: sender_address: sndr@dom ╰──(tainted) ╭considering: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + ├───────text: match: + ├considering: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} ╭considering: abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + ├───────text: abcd + ├considering: }{\N^([ab]+)(\w+)$\N}{$2$1}fail} ├──expanding: abcd ╰─────result: abcd ╭considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} + ├──protected: ^([ab]+)(\w+)$ + ├considering: }{$2$1}fail} ├──expanding: \N^([ab]+)(\w+)$\N ╰─────result: ^([ab]+)(\w+)$ ├──condition: match{abcd}{\N^([ab]+)(\w+)$\N} ├─────result: true ╭considering: $2$1}fail} + ├considering: $1}fail} + ├considering: }fail} ├──expanding: $2$1 ╰─────result: cdab ├──expanding: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} ╰─────result: match: cdab ╭considering: match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + ├───────text: match: + ├considering: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} ╭considering: wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + ├───────text: wxyz + ├considering: }{\N^([ab]+)(\w+)$\N}{$2$1}fail} ├──expanding: wxyz ╰─────result: wxyz ╭considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} + ├──protected: ^([ab]+)(\w+)$ + ├considering: }{$2$1}fail} ├──expanding: \N^([ab]+)(\w+)$\N ╰─────result: ^([ab]+)(\w+)$ ├──condition: match{wxyz}{\N^([ab]+)(\w+)$\N} ├─────result: false ╭───scanning: $2$1}fail} + ├───scanning: $1}fail} + ├───scanning: }fail} ├──expanding: $2$1 ├─────result: ╰───skipping: result is not used @@ -41,35 +61,52 @@ dropping to exim gid; retaining priv uid ╰failure was forced ╭considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} ╭considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} + ├───────text: 1 + ├considering: }{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} ├──expanding: 1 ╰─────result: 1 ╭considering: 1}{yes}{${lookup{xx}lsearch{/non/exist}}}} + ├───────text: 1 + ├considering: }{yes}{${lookup{xx}lsearch{/non/exist}}}} ├──expanding: 1 ╰─────result: 1 ├──condition: eq {1}{1} ├─────result: true ╭considering: yes}{${lookup{xx}lsearch{/non/exist}}}} + ├───────text: yes + ├considering: }{${lookup{xx}lsearch{/non/exist}}}} ├──expanding: yes ╰─────result: yes ╭───scanning: ${lookup{xx}lsearch{/non/exist}}}} ╭───scanning: xx}lsearch{/non/exist}}}} + ├───────text: xx + ├───scanning: }lsearch{/non/exist}}}} ├──expanding: xx ├─────result: xx ╰───skipping: result is not used ╭───scanning: /non/exist}}}} + ├───────text: /non/exist + ├───scanning: }}}} ├──expanding: /non/exist ├─────result: /non/exist ╰───skipping: result is not used + ├───scanning: }} ├──expanding: ${lookup{xx}lsearch{/non/exist}} ├─────result: ╰───skipping: result is not used ├──expanding: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} ╰─────result: yes ╭considering: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}} + ├───────text: match_address: + ├considering: ${if match_address{a.b.c}{a.b.c}{yes}{no}} ╭considering: a.b.c}{a.b.c}{yes}{no}} + ├───────text: a.b.c + ├considering: }{a.b.c}{yes}{no}} ├──expanding: a.b.c ╰─────result: a.b.c ╭considering: a.b.c}{yes}{no}} + ├───────text: a.b.c + ├considering: }{yes}{no}} ├──expanding: a.b.c ╰─────result: a.b.c LOG: MAIN PANIC @@ -77,10 +114,14 @@ LOG: MAIN PANIC ├──condition: match_address{a.b.c}{a.b.c} ├─────result: false ╭───scanning: yes}{no}} + ├───────text: yes + ├───scanning: }{no}} ├──expanding: yes ├─────result: yes ╰───skipping: result is not used ╭considering: no}} + ├───────text: no + ├considering: }} ├──expanding: no ╰─────result: no ├──expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}} @@ -91,32 +132,50 @@ configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid /considering: primary_hostname: $primary_hostname + |-------text: primary_hostname: + |considering: $primary_hostname |--expanding: primary_hostname: $primary_hostname \_____result: primary_hostname: myhost.test.ex /considering: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + |-------text: match: + |considering: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} /considering: abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + |-------text: abcd + |considering: }{\N^([ab]+)(\w+)$\N}{$2$1}fail} |--expanding: abcd \_____result: abcd /considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} + |--protected: ^([ab]+)(\w+)$ + |considering: }{$2$1}fail} |--expanding: \N^([ab]+)(\w+)$\N \_____result: ^([ab]+)(\w+)$ |--condition: match{abcd}{\N^([ab]+)(\w+)$\N} |-----result: true /considering: $2$1}fail} + |considering: $1}fail} + |considering: }fail} |--expanding: $2$1 \_____result: cdab |--expanding: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} \_____result: match: cdab /considering: match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + |-------text: match: + |considering: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} /considering: wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + |-------text: wxyz + |considering: }{\N^([ab]+)(\w+)$\N}{$2$1}fail} |--expanding: wxyz \_____result: wxyz /considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} + |--protected: ^([ab]+)(\w+)$ + |considering: }{$2$1}fail} |--expanding: \N^([ab]+)(\w+)$\N \_____result: ^([ab]+)(\w+)$ |--condition: match{wxyz}{\N^([ab]+)(\w+)$\N} |-----result: false /---scanning: $2$1}fail} + |---scanning: $1}fail} + |---scanning: }fail} |--expanding: $2$1 |-----result: \___skipping: result is not used @@ -125,35 +184,52 @@ dropping to exim gid; retaining priv uid \failure was forced /considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} /considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} + |-------text: 1 + |considering: }{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} |--expanding: 1 \_____result: 1 /considering: 1}{yes}{${lookup{xx}lsearch{/non/exist}}}} + |-------text: 1 + |considering: }{yes}{${lookup{xx}lsearch{/non/exist}}}} |--expanding: 1 \_____result: 1 |--condition: eq {1}{1} |-----result: true /considering: yes}{${lookup{xx}lsearch{/non/exist}}}} + |-------text: yes + |considering: }{${lookup{xx}lsearch{/non/exist}}}} |--expanding: yes \_____result: yes /---scanning: ${lookup{xx}lsearch{/non/exist}}}} /---scanning: xx}lsearch{/non/exist}}}} + |-------text: xx + |---scanning: }lsearch{/non/exist}}}} |--expanding: xx |-----result: xx \___skipping: result is not used /---scanning: /non/exist}}}} + |-------text: /non/exist + |---scanning: }}}} |--expanding: /non/exist |-----result: /non/exist \___skipping: result is not used + |---scanning: }} |--expanding: ${lookup{xx}lsearch{/non/exist}} |-----result: \___skipping: result is not used |--expanding: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} \_____result: yes /considering: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}} + |-------text: match_address: + |considering: ${if match_address{a.b.c}{a.b.c}{yes}{no}} /considering: a.b.c}{a.b.c}{yes}{no}} + |-------text: a.b.c + |considering: }{a.b.c}{yes}{no}} |--expanding: a.b.c \_____result: a.b.c /considering: a.b.c}{yes}{no}} + |-------text: a.b.c + |considering: }{yes}{no}} |--expanding: a.b.c \_____result: a.b.c LOG: MAIN PANIC @@ -161,10 +237,14 @@ LOG: MAIN PANIC |--condition: match_address{a.b.c}{a.b.c} |-----result: false /---scanning: yes}{no}} + |-------text: yes + |---scanning: }{no}} |--expanding: yes |-----result: yes \___skipping: result is not used /considering: no}} + |-------text: no + |considering: }} |--expanding: no \_____result: no |--expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}} @@ -175,36 +255,54 @@ configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid ╭considering: -oMa sender_host_address = $sender_host_address + ├───────text: -oMa sender_host_address = + ├considering: $sender_host_address ├──expanding: -oMa sender_host_address = $sender_host_address ╰─────result: -oMa sender_host_address = V4NET.0.0.1 ╰──(tainted) ╭considering: sender_host_port = $sender_host_port + ├───────text: sender_host_port = + ├considering: $sender_host_port ├──expanding: sender_host_port = $sender_host_port ╰─────result: sender_host_port = 1234 ╭considering: -oMaa sender_host_authenticated = $sender_host_authenticated + ├───────text: -oMaa sender_host_authenticated = + ├considering: $sender_host_authenticated ├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated ╰─────result: -oMaa sender_host_authenticated = AAA ╰──(tainted) ╭considering: -oMai authenticated_id = $authenticated_id + ├───────text: -oMai authenticated_id = + ├considering: $authenticated_id ├──expanding: -oMai authenticated_id = $authenticated_id ╰─────result: -oMai authenticated_id = philip ╰──(tainted) ╭considering: -oMas authenticated_sender = $authenticated_sender + ├───────text: -oMas authenticated_sender = + ├considering: $authenticated_sender ├──expanding: -oMas authenticated_sender = $authenticated_sender ╰─────result: -oMas authenticated_sender = xx@yy.zz ╰──(tainted) ╭considering: -oMi interface_address = $interface_address + ├───────text: -oMi interface_address = + ├considering: $interface_address ├──expanding: -oMi interface_address = $interface_address ╰─────result: -oMi interface_address = 1.1.1.1 ╰──(tainted) ╭considering: interface_port = $interface_port + ├───────text: interface_port = + ├considering: $interface_port ├──expanding: interface_port = $interface_port ╰─────result: interface_port = 99 ╭considering: -oMr received_protocol = $received_protocol + ├───────text: -oMr received_protocol = + ├considering: $received_protocol ├──expanding: -oMr received_protocol = $received_protocol ╰─────result: -oMr received_protocol = special ╰──(tainted) ╭considering: -oMt sender_ident = $sender_ident + ├───────text: -oMt sender_ident = + ├considering: $sender_ident ├──expanding: -oMt sender_ident = $sender_ident ╰─────result: -oMt sender_ident = me ╰──(tainted) @@ -215,54 +313,81 @@ configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid ╭considering: -oMa sender_host_address = $sender_host_address + ├───────text: -oMa sender_host_address = + ├considering: $sender_host_address ├──expanding: -oMa sender_host_address = $sender_host_address ╰─────result: -oMa sender_host_address = V4NET.0.0.1 ╰──(tainted) ╭considering: sender_host_port = $sender_host_port + ├───────text: sender_host_port = + ├considering: $sender_host_port ├──expanding: sender_host_port = $sender_host_port ╰─────result: sender_host_port = 1234 ╭considering: -oMaa sender_host_authenticated = $sender_host_authenticated + ├───────text: -oMaa sender_host_authenticated = + ├considering: $sender_host_authenticated ├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated ╰─────result: -oMaa sender_host_authenticated = AAA ╰──(tainted) ╭considering: -oMai authenticated_id = $authenticated_id + ├───────text: -oMai authenticated_id = + ├considering: $authenticated_id ├──expanding: -oMai authenticated_id = $authenticated_id ╰─────result: -oMai authenticated_id = philip ╰──(tainted) ╭considering: -oMas authenticated_sender = $authenticated_sender + ├───────text: -oMas authenticated_sender = + ├considering: $authenticated_sender ├──expanding: -oMas authenticated_sender = $authenticated_sender ╰─────result: -oMas authenticated_sender = xx@yy.zz ╰──(tainted) ╭considering: -oMi interface_address = $interface_address + ├───────text: -oMi interface_address = + ├considering: $interface_address ├──expanding: -oMi interface_address = $interface_address ╰─────result: -oMi interface_address = 1.1.1.1 ╰──(tainted) ╭considering: interface_port = $interface_port + ├───────text: interface_port = + ├considering: $interface_port ├──expanding: interface_port = $interface_port ╰─────result: interface_port = 99 ╭considering: -oMr received_protocol = $received_protocol + ├───────text: -oMr received_protocol = + ├considering: $received_protocol ├──expanding: -oMr received_protocol = $received_protocol ╰─────result: -oMr received_protocol = special ╰──(tainted) ╭considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}} + ├───────text: ----> No lookup yet: + ├considering: ${if eq{black}{white}{$sender_host_name}{No}} ╭considering: black}{white}{$sender_host_name}{No}} + ├───────text: black + ├considering: }{white}{$sender_host_name}{No}} ├──expanding: black ╰─────result: black ╭considering: white}{$sender_host_name}{No}} + ├───────text: white + ├considering: }{$sender_host_name}{No}} ├──expanding: white ╰─────result: white ├──condition: eq{black}{white} ├─────result: false ╭───scanning: $sender_host_name}{No}} + ├───scanning: }{No}} ├──expanding: $sender_host_name ├─────result: ╰───skipping: result is not used ╭considering: No}} + ├───────text: No + ├considering: }} ├──expanding: No ╰─────result: No ├──expanding: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}} ╰─────result: ----> No lookup yet: No ╭considering: -oMs sender_host_name = $sender_host_name + ├───────text: -oMs sender_host_name = + ├considering: $sender_host_name looking up host name for V4NET.0.0.1 IP address lookup yielded "ten-1.test.ex" ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx @@ -274,6 +399,8 @@ sender_rcvhost = ten-1.test.ex ([V4NET.0.0.1] ident=me) ╰─────result: -oMs sender_host_name = ten-1.test.ex ╰──(tainted) ╭considering: -oMt sender_ident = $sender_ident + ├───────text: -oMt sender_ident = + ├considering: $sender_ident ├──expanding: -oMt sender_ident = $sender_ident ╰─────result: -oMt sender_ident = me ╰──(tainted) diff --git a/test/stderr/0092 b/test/stderr/0092 index 2d6b02a9b..c2bfdd759 100644 --- a/test/stderr/0092 +++ b/test/stderr/0092 @@ -52,20 +52,29 @@ host in host_lookup? no (option unset) set_process_info: pppp handling incoming connection from [V4NET.0.0.1] ╭considering: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s ╭considering: V4NET.0.0.1} {$sender_host_address} {2} {30}}s + ├───────text: V4NET.0.0.1 + ├considering: } {$sender_host_address} {2} {30}}s ├──expanding: V4NET.0.0.1 ╰─────result: V4NET.0.0.1 ╭considering: $sender_host_address} {2} {30}}s + ├considering: } {2} {30}}s ├──expanding: $sender_host_address ╰─────result: V4NET.0.0.1 ├──condition: eq {V4NET.0.0.1} {$sender_host_address} ├─────result: true ╭considering: 2} {30}}s + ├───────text: 2 + ├considering: } {30}}s ├──expanding: 2 ╰─────result: 2 ╭───scanning: 30}}s + ├───────text: 30 + ├───scanning: }}s ├──expanding: 30 ├─────result: 30 ╰───skipping: result is not used + ├considering: s + ├───────text: s ├──expanding: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s ╰─────result: 2s host in host_reject_connection? no (option unset) @@ -75,6 +84,12 @@ host in helo_verify_hosts? no (option unset) host in helo_try_verify_hosts? no (option unset) host in helo_accept_junk_hosts? no (option unset) ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $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 SMTP>> 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 diff --git a/test/stderr/0402 b/test/stderr/0402 index a87765c45..92b6e9489 100644 --- a/test/stderr/0402 +++ b/test/stderr/0402 @@ -47,6 +47,14 @@ Data file written for message 10HmaX-0005vi-00 ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -56,6 +64,29 @@ Data file written for message 10HmaX-0005vi-00 ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -75,16 +106,49 @@ Data file written for message 10HmaX-0005vi-00 ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: false ╭───scanning: (helo=$sender_helo_name) @@ -93,14 +157,61 @@ Data file written for message 10HmaX-0005vi-00 ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├───scanning: $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}} + ├───scanning: ) + }}}}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}} + ├───────text: ) + + ├───scanning: }}}}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=) ╰───skipping: result is not used + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} ╰─────result: from CALLER + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -108,21 +219,122 @@ Data file written for message 10HmaX-0005vi-00 ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: false ╭───scanning: for $received_for}} + ├───────text: + for + ├───scanning: $received_for}} + ├───scanning: }} ├──expanding: for $received_for ├─────result: @@ -265,6 +477,8 @@ stripped prefix rd+ checking local_parts usery in "usery"? yes (matched "usery") ╭considering: /non-exist/$domain + ├───────text: /non-exist/ + ├considering: $domain ├──expanding: /non-exist/$domain ╰─────result: /non-exist/test.ex ╰──(tainted) @@ -305,6 +519,8 @@ stripped prefix rd+ checking local_parts CALLER in "CALLER"? yes (matched "CALLER") ╭considering: /non-exist/$local_part + ├───────text: /non-exist/ + ├considering: $local_part ├──expanding: /non-exist/$local_part ╰─────result: /non-exist/CALLER ╰──(tainted) @@ -339,6 +555,8 @@ local_part=userz domain=test.ex checking local_parts userz in "userz"? yes (matched "userz") ╭considering: /non-exist/$domain + ├───────text: /non-exist/ + ├considering: $domain ├──expanding: /non-exist/$domain ╰─────result: /non-exist/test.ex ╰──(tainted) @@ -365,6 +583,8 @@ local_part=usery domain=test.ex checking local_parts usery in "usery"? yes (matched "usery") ╭considering: /non-exist/$domain + ├───────text: /non-exist/ + ├considering: $domain ├──expanding: /non-exist/$domain ╰─────result: /non-exist/test.ex ╰──(tainted) @@ -386,6 +606,8 @@ local_part=CALLER domain=test.ex checking local_parts CALLER in "CALLER"? yes (matched "CALLER") ╭considering: /non-exist/$local_part + ├───────text: /non-exist/ + ├considering: $local_part ├──expanding: /non-exist/$local_part ╰─────result: /non-exist/CALLER ╰──(tainted) @@ -435,6 +657,8 @@ search_tidyup called failed to open DB file TESTSUITE/spool/db/retry: No such file or directory no retry data available ╭considering: /non-exist/$local_part + ├───────text: /non-exist/ + ├considering: $local_part ├──expanding: /non-exist/$local_part ╰─────result: /non-exist/usery ╰──(tainted) @@ -460,18 +684,35 @@ mailbox TESTSUITE/test-mail/junk is locked writing to file TESTSUITE/test-mail/junk ╭considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├───────text: From + ├considering: ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├──condition: def:return_path ├─────result: true ╭considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├considering: }{MAILER-DAEMON}} ${tod_bsdinbox} + ├──expanding: $return_path ╰─────result: CALLER@test.ex ╰──(tainted) ╭───scanning: MAILER-DAEMON}} ${tod_bsdinbox} + ├───────text: MAILER-DAEMON + ├───scanning: }} ${tod_bsdinbox} + ├──expanding: MAILER-DAEMON ├─────result: MAILER-DAEMON ╰───skipping: result is not used + ├considering: ${tod_bsdinbox} + + ├───────text: + ├considering: ${tod_bsdinbox} + + ├considering: + + ├───────text: + ├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} ╰─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999 @@ -519,18 +760,35 @@ mailbox TESTSUITE/test-mail/junk is locked writing to file TESTSUITE/test-mail/junk ╭considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├───────text: From + ├considering: ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├──condition: def:return_path ├─────result: true ╭considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├considering: }{MAILER-DAEMON}} ${tod_bsdinbox} + ├──expanding: $return_path ╰─────result: CALLER@test.ex ╰──(tainted) ╭───scanning: MAILER-DAEMON}} ${tod_bsdinbox} + ├───────text: MAILER-DAEMON + ├───scanning: }} ${tod_bsdinbox} + ├──expanding: MAILER-DAEMON ├─────result: MAILER-DAEMON ╰───skipping: result is not used + ├considering: ${tod_bsdinbox} + + ├───────text: + ├considering: ${tod_bsdinbox} + + ├considering: + + ├───────text: + ├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} ╰─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999 @@ -583,6 +841,8 @@ LOG: MAIN failed to open DB file TESTSUITE/spool/db/retry: No such file or directory no retry data available ╭considering: /non-exist/$local_part + ├───────text: /non-exist/ + ├considering: $local_part ├──expanding: /non-exist/$local_part ╰─────result: /non-exist/usery ╰──(tainted) @@ -613,6 +873,8 @@ LOG: MAIN failed to open DB file TESTSUITE/spool/db/retry: No such file or directory no retry data available ╭considering: /$local_part + ├───────text: / + ├considering: $local_part ├──expanding: /$local_part ╰─────result: /userz ╰──(tainted) diff --git a/test/stderr/0544 b/test/stderr/0544 index c79ebacb6..40751acc5 100644 --- a/test/stderr/0544 +++ b/test/stderr/0544 @@ -12,6 +12,14 @@ admin user ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -21,6 +29,29 @@ admin user ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -40,16 +71,49 @@ admin user ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: false ╭───scanning: (helo=$sender_helo_name) @@ -58,14 +122,61 @@ admin user ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├───scanning: $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}} + ├───scanning: ) + }}}}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}} + ├───────text: ) + + ├───scanning: }}}}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=) ╰───skipping: result is not used + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} ╰─────result: from CALLER + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -73,21 +184,122 @@ admin user ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: false ╭───scanning: for $received_for}} + ├───────text: + for + ├───scanning: $received_for}} + ├───scanning: }} ├──expanding: for $received_for ├─────result: @@ -125,30 +337,43 @@ LOG: MAIN == userx@domain2.ex R=smarthost T=smtp defer (-1): first-pass only routing due to -odqs, queue_smtp_domains or control=queue ╭considering: ${if or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} ╭considering: $h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} + ├considering: $h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} + ├considering: $h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} + ├considering: }{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} ├──expanding: $h_list-id:$h_list-post:$h_list-subscribe: ╰─────result: ╭considering: } }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} ├──expanding: ╰─────result: ╭considering: $h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} + ├considering: }{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} ├──expanding: $h_precedence: ╰─────result: ╭considering: (?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} + ├───────text: (?i)bulk|list|junk + ├considering: } }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} ├──expanding: (?i)bulk|list|junk ╰─────result: (?i)bulk|list|junk ╭considering: $h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} + ├considering: }{(?i)auto-generated|auto-replied} }} {no}{yes}} ├──expanding: $h_auto-submitted: ╰─────result: ╭considering: (?i)auto-generated|auto-replied} }} {no}{yes}} + ├───────text: (?i)auto-generated|auto-replied + ├considering: } }} {no}{yes}} ├──expanding: (?i)auto-generated|auto-replied ╰─────result: (?i)auto-generated|auto-replied ├──condition: or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} ├─────result: false ╭───scanning: no}{yes}} + ├───────text: no + ├───scanning: }{yes}} ├──expanding: no ├─────result: no ╰───skipping: result is not used ╭considering: yes}} + ├───────text: yes + ├considering: }} ├──expanding: yes ╰─────result: yes ├──expanding: ${if or {{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} }{ match{$h_precedence:}{(?i)bulk|list|junk} }{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} }} {no}{yes}} @@ -162,14 +387,23 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $tod_full ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full ╰─────result: the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 ╭considering: ${if match_domain {$sender_helo_name}{+dlist}} ╭considering: $sender_helo_name}{+dlist}} + ├considering: }{+dlist}} ├──expanding: $sender_helo_name ╰─────result: ehlo.domain ╰──(tainted) ╭considering: +dlist}} + ├───────text: +dlist + ├considering: }} ├──expanding: +dlist ╰─────result: +dlist ╭considering: $domain @@ -181,14 +415,29 @@ LOG: smtp_connection MAIN ├──expanding: ${if match_domain {$sender_helo_name}{+dlist}} ╰─────result: true ╭considering: domain=$domain/sender_domain=$sender_address_domain + ├───────text: domain= + ├considering: $domain/sender_domain=$sender_address_domain + ├considering: /sender_domain=$sender_address_domain + ├───────text: /sender_domain= + ├considering: $sender_address_domain ├──expanding: domain=$domain/sender_domain=$sender_address_domain ╰─────result: domain=/sender_domain=sender.domain ╰──(tainted) ╭considering: domain=$domain/sender_domain=$sender_address_domain + ├───────text: domain= + ├considering: $domain/sender_domain=$sender_address_domain + ├considering: /sender_domain=$sender_address_domain + ├───────text: /sender_domain= + ├considering: $sender_address_domain ├──expanding: domain=$domain/sender_domain=$sender_address_domain ╰─────result: domain=recipient.domain/sender_domain=sender.domain ╰──(tainted) ╭considering: domain=$domain/sender_domain=$sender_address_domain + ├───────text: domain= + ├considering: $domain/sender_domain=$sender_address_domain + ├considering: /sender_domain=$sender_address_domain + ├───────text: /sender_domain= + ├considering: $sender_address_domain ├──expanding: domain=$domain/sender_domain=$sender_address_domain ╰─────result: domain=recipient.domain/sender_domain=sender.domain ╰──(tainted) diff --git a/test/stderr/0620 b/test/stderr/0620 index 455a3ee1b..89f0e616a 100644 --- a/test/stderr/0620 +++ b/test/stderr/0620 @@ -5,9 +5,17 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $tod_full ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full ╰─────result: primaryhostname.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 ╭considering: domain $domain + ├───────text: domain + ├considering: $domain ├──expanding: domain $domain ╰─────result: domain trythiskey.ex ╰──(tainted) @@ -15,11 +23,26 @@ LOG: MAIN domain trythiskey.ex created log directory TESTSUITE/spool/log ╭considering: value $domain_data + ├───────text: value + ├considering: $domain_data ├──expanding: value $domain_data ╰─────result: value has this data LOG: MAIN value has this data ╭considering: \$0 '$0' \$1 '$1' + ├backslashed: '\$' + ├considering: 0 '$0' \$1 '$1' + ├───────text: 0 ' + ├considering: $0' \$1 '$1' + ├considering: ' \$1 '$1' + ├───────text: ' + ├considering: \$1 '$1' + ├backslashed: '\$' + ├considering: 1 '$1' + ├───────text: 1 ' + ├considering: $1' + ├considering: ' + ├───────text: ' ├──expanding: \$0 '$0' \$1 '$1' ╰─────result: $0 'trythiskey.ex' $1 '' ╰──(tainted) @@ -35,20 +58,43 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $tod_full ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full ╰─────result: primaryhostname.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 ╭considering: domain $domain + ├───────text: domain + ├considering: $domain ├──expanding: domain $domain ╰─────result: domain trythiskey.ex ╰──(tainted) LOG: MAIN domain trythiskey.ex ╭considering: value $domain_data + ├───────text: value + ├considering: $domain_data ├──expanding: value $domain_data ╰─────result: value trythiskey.ex LOG: MAIN value trythiskey.ex ╭considering: \$0 '$0' \$1 '$1' + ├backslashed: '\$' + ├considering: 0 '$0' \$1 '$1' + ├───────text: 0 ' + ├considering: $0' \$1 '$1' + ├considering: ' \$1 '$1' + ├───────text: ' + ├considering: \$1 '$1' + ├backslashed: '\$' + ├considering: 1 '$1' + ├───────text: 1 ' + ├considering: $1' + ├considering: ' + ├───────text: ' ├──expanding: \$0 '$0' \$1 '$1' ╰─────result: $0 'trythiskey.ex' $1 '' ╰──(tainted) diff --git a/test/stderr/3000 b/test/stderr/3000 index 0996e349f..86c8b4261 100644 --- a/test/stderr/3000 +++ b/test/stderr/3000 @@ -6,9 +6,13 @@ admin user dropping to exim gid; retaining priv uid ╭considering: ${perl{foo}{arg1}} ╭considering: foo}{arg1}} + ├───────text: foo + ├considering: }{arg1}} ├──expanding: foo ╰─────result: foo ╭considering: arg1}} + ├───────text: arg1 + ├considering: }} ├──expanding: arg1 ╰─────result: arg1 Starting Perl interpreter @@ -16,6 +20,8 @@ Starting Perl interpreter ╰─────result: Subroutine foo called with args: arg1 ╭considering: ${perl{foo_undef}} ╭considering: foo_undef}} + ├───────text: foo_undef + ├considering: }} ├──expanding: foo_undef ╰─────result: foo_undef ├failed to expand: ${perl{foo_undef}} @@ -23,9 +29,15 @@ Starting Perl interpreter ╰failure was forced ╭considering: ${perl{debug_write}{debug from Perl\n}} ╭considering: debug_write}{debug from Perl\n}} + ├───────text: debug_write + ├considering: }{debug from Perl\n}} ├──expanding: debug_write ╰─────result: debug_write ╭considering: debug from Perl\n}} + ├───────text: debug from Perl + ├considering: \n}} + ├backslashed: '\n' + ├considering: }} ├──expanding: debug from Perl\n ╰─────result: debug from Perl @@ -34,9 +46,13 @@ debug from Perl ╰─────result: Wrote debug ╭considering: ${perl{log_write}{log from Perl}} ╭considering: log_write}{log from Perl}} + ├───────text: log_write + ├considering: }{log from Perl}} ├──expanding: log_write ╰─────result: log_write ╭considering: log from Perl}} + ├───────text: log from Perl + ├considering: }} ├──expanding: log from Perl ╰─────result: log from Perl LOG: MAIN diff --git a/test/stderr/5410 b/test/stderr/5410 index 617f1166a..990fac898 100644 --- a/test/stderr/5410 +++ b/test/stderr/5410 @@ -6,6 +6,12 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $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) @@ -14,18 +20,26 @@ LOG: smtp_connection MAIN in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -68,19 +82,26 @@ cmd buf flush ddd bytes 250 HELP ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: userx ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: false ╭───scanning: *}{:}} + ├───────text: * + ├───scanning: }{:}} ├──expanding: * ├─────result: * ╰───skipping: result is not used ╭considering: :}} + ├───────text: : + ├considering: }} ├──expanding: : ╰─────result: : ├──expanding: ${if eq {$address_data}{usery}{*}{:}} @@ -88,19 +109,26 @@ cmd buf flush ddd bytes 127.0.0.1 in hosts_avoid_tls? no (end of list) ╭considering: ${if eq {$address_data}{userz}{*}{:}} ╭considering: $address_data}{userz}{*}{:}} + ├considering: }{userz}{*}{:}} ├──expanding: $address_data ╰─────result: userx ╰──(tainted) ╭considering: userz}{*}{:}} + ├───────text: userz + ├considering: }{*}{:}} ├──expanding: userz ╰─────result: userz ├──condition: eq {$address_data}{userz} ├─────result: false ╭───scanning: *}{:}} + ├───────text: * + ├───scanning: }{:}} ├──expanding: * ├─────result: * ╰───skipping: result is not used ╭considering: :}} + ├───────text: : + ├considering: }} ├──expanding: : ╰─────result: : ├──expanding: ${if eq {$address_data}{userz}{*}{:}} @@ -146,6 +174,14 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -155,6 +191,29 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -174,16 +233,49 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) @@ -192,16 +284,63 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├considering: $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: ) + }}}}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}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${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) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -209,21 +348,122 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@myhost.test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: @@ -270,6 +510,12 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $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) @@ -278,18 +524,26 @@ LOG: smtp_connection MAIN in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -332,18 +586,25 @@ cmd buf flush ddd bytes 250 HELP ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: usery ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true ╭considering: *}{:}} + ├───────text: * + ├considering: }{:}} ├──expanding: * ╰─────result: * ╭───scanning: :}} + ├───────text: : + ├───scanning: }} ├──expanding: : ├─────result: : ╰───skipping: result is not used @@ -378,6 +639,14 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -387,6 +656,29 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -406,16 +698,49 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) @@ -424,16 +749,63 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├considering: $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: ) + }}}}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}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${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) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -441,21 +813,122 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@myhost.test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: @@ -502,6 +975,12 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $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) @@ -510,18 +989,26 @@ LOG: smtp_connection MAIN in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -564,18 +1051,25 @@ cmd buf flush ddd bytes 250 HELP ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: usery ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true ╭considering: *}{:}} + ├───────text: * + ├considering: }{:}} ├──expanding: * ╰─────result: * ╭───scanning: :}} + ├───────text: : + ├───scanning: }} ├──expanding: : ├─────result: : ╰───skipping: result is not used @@ -610,6 +1104,14 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -619,6 +1121,29 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -638,16 +1163,49 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) @@ -656,16 +1214,63 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├considering: $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: ) + }}}}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}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${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) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -673,21 +1278,122 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@myhost.test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: diff --git a/test/stderr/5420 b/test/stderr/5420 index fb5bb6fa8..7ac360377 100644 --- a/test/stderr/5420 +++ b/test/stderr/5420 @@ -6,6 +6,12 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $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) @@ -14,18 +20,26 @@ LOG: smtp_connection MAIN in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -68,19 +82,26 @@ cmd buf flush ddd bytes 250 HELP ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: userx ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: false ╭───scanning: *}{:}} + ├───────text: * + ├───scanning: }{:}} ├──expanding: * ├─────result: * ╰───skipping: result is not used ╭considering: :}} + ├───────text: : + ├considering: }} ├──expanding: : ╰─────result: : ├──expanding: ${if eq {$address_data}{usery}{*}{:}} @@ -88,19 +109,26 @@ cmd buf flush ddd bytes 127.0.0.1 in hosts_avoid_tls? no (end of list) ╭considering: ${if eq {$address_data}{userz}{*}{:}} ╭considering: $address_data}{userz}{*}{:}} + ├considering: }{userz}{*}{:}} ├──expanding: $address_data ╰─────result: userx ╰──(tainted) ╭considering: userz}{*}{:}} + ├───────text: userz + ├considering: }{*}{:}} ├──expanding: userz ╰─────result: userz ├──condition: eq {$address_data}{userz} ├─────result: false ╭───scanning: *}{:}} + ├───────text: * + ├───scanning: }{:}} ├──expanding: * ├─────result: * ╰───skipping: result is not used ╭considering: :}} + ├───────text: : + ├considering: }} ├──expanding: : ╰─────result: : ├──expanding: ${if eq {$address_data}{userz}{*}{:}} @@ -147,6 +175,14 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -156,6 +192,29 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -175,16 +234,49 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) @@ -193,16 +285,63 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├considering: $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: ) + }}}}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}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${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) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -210,21 +349,122 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@myhost.test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: @@ -271,6 +511,12 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $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) @@ -279,18 +525,26 @@ LOG: smtp_connection MAIN in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -333,18 +587,25 @@ cmd buf flush ddd bytes 250 HELP ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: usery ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true ╭considering: *}{:}} + ├───────text: * + ├considering: }{:}} ├──expanding: * ╰─────result: * ╭───scanning: :}} + ├───────text: : + ├───scanning: }} ├──expanding: : ├─────result: : ╰───skipping: result is not used @@ -379,6 +640,14 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -388,6 +657,29 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -407,16 +699,49 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) @@ -425,16 +750,63 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├considering: $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: ) + }}}}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}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${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) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -442,21 +814,122 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@myhost.test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: @@ -503,6 +976,12 @@ admin user LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $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) @@ -511,18 +990,26 @@ LOG: smtp_connection MAIN in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -565,18 +1052,25 @@ cmd buf flush ddd bytes 250 HELP ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: usery ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true ╭considering: *}{:}} + ├───────text: * + ├considering: }{:}} ├──expanding: * ╰─────result: * ╭───scanning: :}} + ├───────text: : + ├───scanning: }} ├──expanding: : ├─────result: : ╰───skipping: result is not used @@ -611,6 +1105,14 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: Received: + ├considering: ${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 @@ -620,6 +1122,29 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├───scanning: $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}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(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 @@ -639,16 +1164,49 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: from + ├considering: ${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}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) @@ -657,16 +1215,63 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (helo= + ├considering: $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: ) + }}}}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}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${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) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $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: ${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}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──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 @@ -674,21 +1279,122 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: with + ├considering: $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: }}${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}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──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}} + ├───────text: tls + ├───scanning: $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}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(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 + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from <CALLER@myhost.test.ex>) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: |