From 1b37ac39f7980e3dfe59521c23e8893a64064632 Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sat, 4 Mar 2017 21:53:33 +0000 Subject: [PATCH] Debug: Use UTF-8 linedrawing rather than ASCII lineart for grouping expansion tracing messages --- src/src/expand.c | 41 ++- src/src/macros.h | 8 + test/stderr/0002 | 304 +++++++++++----------- test/stderr/0092 | 42 ++-- test/stderr/0402 | 216 ++++++++-------- test/stderr/0544 | 226 ++++++++--------- test/stderr/3000 | 68 ++--- test/stderr/5410 | 636 +++++++++++++++++++++++------------------------ test/stderr/5420 | 636 +++++++++++++++++++++++------------------------ test/stdout/0574 | 6 +- 10 files changed, 1106 insertions(+), 1077 deletions(-) diff --git a/src/src/expand.c b/src/src/expand.c index 1da858997..b96b2897a 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -3872,7 +3872,11 @@ BOOL resetok = TRUE; expand_level++; DEBUG(D_expand) - debug_printf_indent("/%s: %s\n", skipping ? " scanning" : "considering", string); + debug_printf_indent(UTF8_DOWN_RIGHT "%s: %s\n", + skipping + ? UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ "scanning" + : "considering", + string); expand_string_forcedfail = FALSE; expand_string_message = US""; @@ -4119,8 +4123,13 @@ while (*s != 0) DEBUG(D_expand) { - debug_printf_indent("|__condition: %.*s\n", (int)(next_s - s), s); - debug_printf_indent("|_____result: %s\n", cond ? "true" : "false"); + debug_printf_indent(UTF8_VERT_RIGHT UTF8_HORIZ UTF8_HORIZ + "condition: %.*s\n", + (int)(next_s - s), s); + debug_printf_indent(UTF8_VERT_RIGHT UTF8_HORIZ UTF8_HORIZ + UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ + "result: %s\n", + cond ? "true" : "false"); } s = next_s; @@ -7501,9 +7510,17 @@ else if (resetok_p) *resetok_p = FALSE; DEBUG(D_expand) { - debug_printf_indent("|__expanding: %.*s\n", (int)(s - string), string); - debug_printf_indent("%s_____result: %s\n", skipping ? "|" : "\\", yield); - if (skipping) debug_printf_indent("\\___skipping: result is not used\n"); + debug_printf_indent(UTF8_VERT_RIGHT UTF8_HORIZ UTF8_HORIZ + "expanding: %.*s\n", + (int)(s - string), string); + debug_printf_indent("%s" + UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ + "result: %s\n", + skipping ? UTF8_VERT_RIGHT : UTF8_UP_RIGHT, + yield); + if (skipping) + debug_printf_indent(UTF8_UP_RIGHT UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ + "skipping: result is not used\n"); } expand_level--; return yield; @@ -7527,10 +7544,14 @@ EXPAND_FAILED: if (left != NULL) *left = s; DEBUG(D_expand) { - debug_printf_indent("|failed to expand: %s\n", string); - debug_printf_indent("%s___error message: %s\n", - expand_string_forcedfail ? "|" : "\\", expand_string_message); - if (expand_string_forcedfail) debug_printf_indent("\\failure was forced\n"); + debug_printf_indent(UTF8_VERT_RIGHT "failed to expand: %s\n", + string); + debug_printf_indent("%s" UTF8_HORIZ UTF8_HORIZ UTF8_HORIZ + "error message: %s\n", + expand_string_forcedfail ? UTF8_VERT_RIGHT : UTF8_UP_RIGHT, + expand_string_message); + if (expand_string_forcedfail) + debug_printf_indent(UTF8_UP_RIGHT "failure was forced\n"); } if (resetok_p) *resetok_p = resetok; expand_level--; diff --git a/src/src/macros.h b/src/src/macros.h index e4dcf3ccd..4efeee928 100644 --- a/src/src/macros.h +++ b/src/src/macros.h @@ -974,5 +974,13 @@ enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE }; #define GETC_BUFFER_UNLIMITED UINT_MAX +/* UTF-8 chars for line-drawing */ + +#define UTF8_DOWN_RIGHT "\xE2\x94\x8c" +#define UTF8_HORIZ "\xE2\x94\x80" +#define UTF8_VERT_RIGHT "\xE2\x94\x9C" +#define UTF8_UP_RIGHT "\xE2\x94\x94" + + /* End of macros.h */ diff --git a/test/stderr/0002 b/test/stderr/0002 index 281e3dcfd..4b68f4e43 100644 --- a/test/stderr/0002 +++ b/test/stderr/0002 @@ -1,164 +1,164 @@ Exim version x.yz .... configuration file is TESTSUITE/test-config admin user - /considering: primary_hostname: $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} - /considering: abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} - |__expanding: abcd - \_____result: abcd - /considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} - |__expanding: \N^([ab]+)(\w+)$\N - \_____result: ^([ab]+)(\w+)$ - |__condition: match{abcd}{\N^([ab]+)(\w+)$\N} - |_____result: true - /considering: $2$1}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} - /considering: wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} - |__expanding: wxyz - \_____result: wxyz - /considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} - |__expanding: \N^([ab]+)(\w+)$\N - \_____result: ^([ab]+)(\w+)$ - |__condition: match{wxyz}{\N^([ab]+)(\w+)$\N} - |_____result: false - / scanning: $2$1}fail} - |__expanding: $2$1 - |_____result: - \___skipping: result is not used - |failed to expand: match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} - |___error message: "if" failed and "fail" requested - \failure was forced - /considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} - /considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} - |__expanding: 1 - \_____result: 1 - /considering: 1}{yes}{${lookup{xx}lsearch{/non/exist}}}} - |__expanding: 1 - \_____result: 1 - |__condition: eq {1}{1} - |_____result: true - /considering: yes}{${lookup{xx}lsearch{/non/exist}}}} - |__expanding: yes - \_____result: yes - / scanning: ${lookup{xx}lsearch{/non/exist}}}} - / scanning: xx}lsearch{/non/exist}}}} - |__expanding: xx - |_____result: xx - \___skipping: result is not used - / scanning: /non/exist}}}} - |__expanding: /non/exist - |_____result: /non/exist - \___skipping: result is not used - |__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}} - /considering: a.b.c}{a.b.c}{yes}{no}} - |__expanding: a.b.c - \_____result: a.b.c - /considering: a.b.c}{yes}{no}} - |__expanding: a.b.c - \_____result: a.b.c + ┌considering: primary_hostname: $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} + ┌considering: abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + ├──expanding: abcd + └─────result: abcd + ┌considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} + ├──expanding: \N^([ab]+)(\w+)$\N + └─────result: ^([ab]+)(\w+)$ + ├──condition: match{abcd}{\N^([ab]+)(\w+)$\N} + ├─────result: true + ┌considering: $2$1}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} + ┌considering: wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + ├──expanding: wxyz + └─────result: wxyz + ┌considering: \N^([ab]+)(\w+)$\N}{$2$1}fail} + ├──expanding: \N^([ab]+)(\w+)$\N + └─────result: ^([ab]+)(\w+)$ + ├──condition: match{wxyz}{\N^([ab]+)(\w+)$\N} + ├─────result: false + ┌───scanning: $2$1}fail} + ├──expanding: $2$1 + ├─────result: + └───skipping: result is not used + ├failed to expand: match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail} + ├───error message: "if" failed and "fail" requested + └failure was forced + ┌considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} + ┌considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}} + ├──expanding: 1 + └─────result: 1 + ┌considering: 1}{yes}{${lookup{xx}lsearch{/non/exist}}}} + ├──expanding: 1 + └─────result: 1 + ├──condition: eq {1}{1} + ├─────result: true + ┌considering: yes}{${lookup{xx}lsearch{/non/exist}}}} + ├──expanding: yes + └─────result: yes + ┌───scanning: ${lookup{xx}lsearch{/non/exist}}}} + ┌───scanning: xx}lsearch{/non/exist}}}} + ├──expanding: xx + ├─────result: xx + └───skipping: result is not used + ┌───scanning: /non/exist}}}} + ├──expanding: /non/exist + ├─────result: /non/exist + └───skipping: result is not used + ├──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}} + ┌considering: a.b.c}{a.b.c}{yes}{no}} + ├──expanding: a.b.c + └─────result: a.b.c + ┌considering: a.b.c}{yes}{no}} + ├──expanding: a.b.c + └─────result: a.b.c LOG: MAIN PANIC no @ found in the subject of an address list match: subject="a.b.c" pattern="a.b.c" - |__condition: match_address{a.b.c}{a.b.c} - |_____result: false - / scanning: yes}{no}} - |__expanding: yes - |_____result: yes - \___skipping: result is not used - /considering: no}} - |__expanding: no - \_____result: no - |__expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}} - \_____result: match_address: no + ├──condition: match_address{a.b.c}{a.b.c} + ├─────result: false + ┌───scanning: yes}{no}} + ├──expanding: yes + ├─────result: yes + └───skipping: result is not used + ┌considering: no}} + ├──expanding: no + └─────result: no + ├──expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}} + └─────result: match_address: no >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... configuration file is TESTSUITE/test-config admin user - /considering: -oMa sender_host_address = $sender_host_address - |__expanding: -oMa sender_host_address = $sender_host_address - \_____result: -oMa sender_host_address = V4NET.0.0.1 - /considering: sender_host_port = $sender_host_port - |__expanding: sender_host_port = $sender_host_port - \_____result: sender_host_port = 1234 - /considering: -oMaa sender_host_authenticated = $sender_host_authenticated - |__expanding: -oMaa sender_host_authenticated = $sender_host_authenticated - \_____result: -oMaa sender_host_authenticated = AAA - /considering: -oMai authenticated_id = $authenticated_id - |__expanding: -oMai authenticated_id = $authenticated_id - \_____result: -oMai authenticated_id = philip - /considering: -oMas authenticated_sender = $authenticated_sender - |__expanding: -oMas authenticated_sender = $authenticated_sender - \_____result: -oMas authenticated_sender = xx@yy.zz - /considering: -oMi interface_address = $interface_address - |__expanding: -oMi interface_address = $interface_address - \_____result: -oMi interface_address = 1.1.1.1 - /considering: interface_port = $interface_port - |__expanding: interface_port = $interface_port - \_____result: interface_port = 99 - /considering: -oMr received_protocol = $received_protocol - |__expanding: -oMr received_protocol = $received_protocol - \_____result: -oMr received_protocol = special - /considering: -oMt sender_ident = $sender_ident - |__expanding: -oMt sender_ident = $sender_ident - \_____result: -oMt sender_ident = me + ┌considering: -oMa sender_host_address = $sender_host_address + ├──expanding: -oMa sender_host_address = $sender_host_address + └─────result: -oMa sender_host_address = V4NET.0.0.1 + ┌considering: sender_host_port = $sender_host_port + ├──expanding: sender_host_port = $sender_host_port + └─────result: sender_host_port = 1234 + ┌considering: -oMaa sender_host_authenticated = $sender_host_authenticated + ├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated + └─────result: -oMaa sender_host_authenticated = AAA + ┌considering: -oMai authenticated_id = $authenticated_id + ├──expanding: -oMai authenticated_id = $authenticated_id + └─────result: -oMai authenticated_id = philip + ┌considering: -oMas authenticated_sender = $authenticated_sender + ├──expanding: -oMas authenticated_sender = $authenticated_sender + └─────result: -oMas authenticated_sender = xx@yy.zz + ┌considering: -oMi interface_address = $interface_address + ├──expanding: -oMi interface_address = $interface_address + └─────result: -oMi interface_address = 1.1.1.1 + ┌considering: interface_port = $interface_port + ├──expanding: interface_port = $interface_port + └─────result: interface_port = 99 + ┌considering: -oMr received_protocol = $received_protocol + ├──expanding: -oMr received_protocol = $received_protocol + └─────result: -oMr received_protocol = special + ┌considering: -oMt sender_ident = $sender_ident + ├──expanding: -oMt sender_ident = $sender_ident + └─────result: -oMt sender_ident = me >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> 1999-03-02 09:44:33 no host name found for IP address V4NET.11.12.13 Exim version x.yz .... configuration file is TESTSUITE/test-config admin user - /considering: -oMa sender_host_address = $sender_host_address - |__expanding: -oMa sender_host_address = $sender_host_address - \_____result: -oMa sender_host_address = V4NET.0.0.1 - /considering: sender_host_port = $sender_host_port - |__expanding: sender_host_port = $sender_host_port - \_____result: sender_host_port = 1234 - /considering: -oMaa sender_host_authenticated = $sender_host_authenticated - |__expanding: -oMaa sender_host_authenticated = $sender_host_authenticated - \_____result: -oMaa sender_host_authenticated = AAA - /considering: -oMai authenticated_id = $authenticated_id - |__expanding: -oMai authenticated_id = $authenticated_id - \_____result: -oMai authenticated_id = philip - /considering: -oMas authenticated_sender = $authenticated_sender - |__expanding: -oMas authenticated_sender = $authenticated_sender - \_____result: -oMas authenticated_sender = xx@yy.zz - /considering: -oMi interface_address = $interface_address - |__expanding: -oMi interface_address = $interface_address - \_____result: -oMi interface_address = 1.1.1.1 - /considering: interface_port = $interface_port - |__expanding: interface_port = $interface_port - \_____result: interface_port = 99 - /considering: -oMr received_protocol = $received_protocol - |__expanding: -oMr received_protocol = $received_protocol - \_____result: -oMr received_protocol = special - /considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}} - /considering: black}{white}{$sender_host_name}{No}} - |__expanding: black - \_____result: black - /considering: white}{$sender_host_name}{No}} - |__expanding: white - \_____result: white - |__condition: eq{black}{white} - |_____result: false - / scanning: $sender_host_name}{No}} - |__expanding: $sender_host_name - |_____result: - \___skipping: result is not used - /considering: No}} - |__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 + ┌considering: -oMa sender_host_address = $sender_host_address + ├──expanding: -oMa sender_host_address = $sender_host_address + └─────result: -oMa sender_host_address = V4NET.0.0.1 + ┌considering: sender_host_port = $sender_host_port + ├──expanding: sender_host_port = $sender_host_port + └─────result: sender_host_port = 1234 + ┌considering: -oMaa sender_host_authenticated = $sender_host_authenticated + ├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated + └─────result: -oMaa sender_host_authenticated = AAA + ┌considering: -oMai authenticated_id = $authenticated_id + ├──expanding: -oMai authenticated_id = $authenticated_id + └─────result: -oMai authenticated_id = philip + ┌considering: -oMas authenticated_sender = $authenticated_sender + ├──expanding: -oMas authenticated_sender = $authenticated_sender + └─────result: -oMas authenticated_sender = xx@yy.zz + ┌considering: -oMi interface_address = $interface_address + ├──expanding: -oMi interface_address = $interface_address + └─────result: -oMi interface_address = 1.1.1.1 + ┌considering: interface_port = $interface_port + ├──expanding: interface_port = $interface_port + └─────result: interface_port = 99 + ┌considering: -oMr received_protocol = $received_protocol + ├──expanding: -oMr received_protocol = $received_protocol + └─────result: -oMr received_protocol = special + ┌considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}} + ┌considering: black}{white}{$sender_host_name}{No}} + ├──expanding: black + └─────result: black + ┌considering: white}{$sender_host_name}{No}} + ├──expanding: white + └─────result: white + ├──condition: eq{black}{white} + ├─────result: false + ┌───scanning: $sender_host_name}{No}} + ├──expanding: $sender_host_name + ├─────result: + └───skipping: result is not used + ┌considering: No}} + ├──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 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 @@ -166,11 +166,11 @@ checking addresses for ten-1.test.ex V4NET.0.0.1 OK sender_fullhost = ten-1.test.ex [V4NET.0.0.1] sender_rcvhost = ten-1.test.ex ([V4NET.0.0.1] ident=me) - |__expanding: -oMs sender_host_name = $sender_host_name - \_____result: -oMs sender_host_name = ten-1.test.ex - /considering: -oMt sender_ident = $sender_ident - |__expanding: -oMt sender_ident = $sender_ident - \_____result: -oMt sender_ident = me + ├──expanding: -oMs sender_host_name = $sender_host_name + └─────result: -oMs sender_host_name = ten-1.test.ex + ┌considering: -oMt sender_ident = $sender_ident + ├──expanding: -oMt sender_ident = $sender_ident + └─────result: -oMt sender_ident = me >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... changed uid/gid: forcing real = effective diff --git a/test/stderr/0092 b/test/stderr/0092 index 3be640671..ff8d0d39a 100644 --- a/test/stderr/0092 +++ b/test/stderr/0092 @@ -50,33 +50,33 @@ LOG: smtp_connection MAIN SMTP connection from [V4NET.0.0.1] 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 - |__expanding: V4NET.0.0.1 - \_____result: V4NET.0.0.1 - /considering: $sender_host_address} {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 - |__expanding: 2 - \_____result: 2 - / scanning: 30}}s - |__expanding: 30 - |_____result: 30 - \___skipping: result is not used - |__expanding: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s - \_____result: 2s + ┌considering: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s + ┌considering: V4NET.0.0.1} {$sender_host_address} {2} {30}}s + ├──expanding: V4NET.0.0.1 + └─────result: V4NET.0.0.1 + ┌considering: $sender_host_address} {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 + ├──expanding: 2 + └─────result: 2 + ┌───scanning: 30}}s + ├──expanding: 30 + ├─────result: 30 + └───skipping: result is not used + ├──expanding: ${if eq {V4NET.0.0.1} {$sender_host_address} {2} {30}}s + └─────result: 2s host in host_reject_connection? no (option unset) host in sender_unqualified_hosts? no (option unset) host in recipient_unqualified_hosts? no (option unset) 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 - |__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full - \_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full + └─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 smtp_setup_msg entered SMTP<< mail from:userx@test.ex diff --git a/test/stderr/0402 b/test/stderr/0402 index 99b05dd21..89121366a 100644 --- a/test/stderr/0402 +++ b/test/stderr/0402 @@ -41,109 +41,109 @@ F From: CALLER_NAME Data file name: TESTSUITE/spool//input//10HmaX-0005vi-00-D Data file written for message 10HmaX-0005vi-00 - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: false - / scanning: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: false + ┌───scanning: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - |_____result: (helo=) + ├─────result: (helo=) - \___skipping: result is not used - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + └─────result: from CALLER + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (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 - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: false - / scanning: + ├──condition: def:received_for + ├─────result: false + ┌───scanning: for $received_for}} - |__expanding: + ├──expanding: for $received_for - |_____result: + ├─────result: for - \___skipping: result is not used - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + └───skipping: result is not used + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER by mail.test.ex with local (Exim x.yz) + └─────result: Received: from CALLER by mail.test.ex with local (Exim x.yz) (envelope-from ) id 10HmaX-0005vi-00 >>Generated Received: header line @@ -152,9 +152,9 @@ P Received: from CALLER by mail.test.ex with local (Exim x.yz) id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000 calling local_scan(); timeout=300 local_scan() returned 0 NULL - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 Writing spool header file: TESTSUITE/spool//input//hdr.pppp DSN: Write SPOOL :-dsn_envid NULL DSN: Write SPOOL :-dsn_ret 0 @@ -283,9 +283,9 @@ local_part=rd+usery domain=test.ex stripped prefix rd+ checking local_parts usery in "usery"? yes (matched "usery") - /considering: /non-exist/$domain - |__expanding: /non-exist/$domain - \_____result: /non-exist/test.ex + ┌considering: /non-exist/$domain + ├──expanding: /non-exist/$domain + └─────result: /non-exist/test.ex calling r5 router rda_interpret (string): TESTSUITE/test-mail/junk expanded: TESTSUITE/test-mail/junk @@ -322,9 +322,9 @@ local_part=rd+CALLER domain=test.ex stripped prefix rd+ checking local_parts CALLER in "CALLER"? yes (matched "CALLER") - /considering: /non-exist/$local_part - |__expanding: /non-exist/$local_part - \_____result: /non-exist/CALLER + ┌considering: /non-exist/$local_part + ├──expanding: /non-exist/$local_part + └─────result: /non-exist/CALLER calling r4 router rda_interpret (string): TESTSUITE/test-mail/junk expanded: TESTSUITE/test-mail/junk @@ -355,9 +355,9 @@ r2 router skipped: local_parts mismatch local_part=userz domain=test.ex checking local_parts userz in "userz"? yes (matched "userz") - /considering: /non-exist/$domain - |__expanding: /non-exist/$domain - \_____result: /non-exist/test.ex + ┌considering: /non-exist/$domain + ├──expanding: /non-exist/$domain + └─────result: /non-exist/test.ex calling r3 router r3 router called for userz@test.ex domain = test.ex @@ -380,9 +380,9 @@ r1 router skipped: local_parts mismatch local_part=usery domain=test.ex checking local_parts usery in "usery"? yes (matched "usery") - /considering: /non-exist/$domain - |__expanding: /non-exist/$domain - \_____result: /non-exist/test.ex + ┌considering: /non-exist/$domain + ├──expanding: /non-exist/$domain + └─────result: /non-exist/test.ex calling r2 router r2 router called for usery@test.ex domain = test.ex @@ -400,9 +400,9 @@ routing CALLER@test.ex local_part=CALLER domain=test.ex checking local_parts CALLER in "CALLER"? yes (matched "CALLER") - /considering: /non-exist/$local_part - |__expanding: /non-exist/$local_part - \_____result: /non-exist/CALLER + ┌considering: /non-exist/$local_part + ├──expanding: /non-exist/$local_part + └─────result: /non-exist/CALLER calling r1 router r1 router called for CALLER@test.ex domain = test.ex @@ -446,18 +446,18 @@ locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available - /considering: /non-exist/$local_part - |__expanding: /non-exist/$local_part - \_____result: /non-exist/usery + ┌considering: /non-exist/$local_part + ├──expanding: /non-exist/$local_part + └─────result: /non-exist/usery search_tidyup called changed uid/gid: local delivery to TESTSUITE/test-mail/junk transport=ft1 uid=CALLER_UID gid=CALLER_GID pid=pppp home=/non-exist/usery current=/ set_process_info: pppp delivering 10HmaX-0005vi-00 to TESTSUITE/test-mail/junk using ft1 appendfile transport entered - /considering: $address_file - |__expanding: $address_file - \_____result: TESTSUITE/test-mail/junk + ┌considering: $address_file + ├──expanding: $address_file + └─────result: TESTSUITE/test-mail/junk appendfile: mode=600 notify_comsat=0 quota=0 warning=0 file=TESTSUITE/test-mail/junk format=unix message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n @@ -469,22 +469,22 @@ hitch name: TESTSUITE/test-mail/junk.lock.test.ex.dddddddd.pppppppp lock file created 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} + ┌considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} - |__condition: def:return_path - |_____result: true - /considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├──condition: def:return_path + ├─────result: true + ┌considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox} - |__expanding: $return_path - \_____result: CALLER@test.ex - / scanning: MAILER-DAEMON}} ${tod_bsdinbox} + ├──expanding: $return_path + └─────result: CALLER@test.ex + ┌───scanning: MAILER-DAEMON}} ${tod_bsdinbox} - |__expanding: MAILER-DAEMON - |_____result: MAILER-DAEMON - \___skipping: result is not used - |__expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} + ├──expanding: MAILER-DAEMON + ├─────result: MAILER-DAEMON + └───skipping: result is not used + ├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox} - \_____result: From CALLER@test.ex Tue Mar 02 09:44:33 1999 + └─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999 writing data block fd=dddd size=sss timeout=0 writing data block fd=dddd size=sss timeout=0 @@ -510,9 +510,9 @@ changed uid/gid: local delivery to TESTSUITE/test-mail/junk transport=t1 uid=CALLER_UID gid=CALLER_GID pid=pppp @@ -612,9 +612,9 @@ locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available - /considering: /$local_part - |__expanding: /$local_part - \_____result: /userz + ┌considering: /$local_part + ├──expanding: /$local_part + └─────result: /userz search_tidyup called changed uid/gid: local delivery to userz transport=t2 uid=CALLER_UID gid=CALLER_GID pid=pppp diff --git a/test/stderr/0544 b/test/stderr/0544 index 00ffeb85b..44582a1cc 100644 --- a/test/stderr/0544 +++ b/test/stderr/0544 @@ -1,114 +1,114 @@ Exim version x.yz .... configuration file is TESTSUITE/test-config admin user - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: false - / scanning: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: false + ┌───scanning: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - |_____result: (helo=) + ├─────result: (helo=) - \___skipping: result is not used - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + └─────result: from CALLER + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (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 - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: false - / scanning: + ├──condition: def:received_for + ├─────result: false + ┌───scanning: for $received_for}} - |__expanding: + ├──expanding: for $received_for - |_____result: + ├─────result: for - \___skipping: result is not used - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + └───skipping: result is not used + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER by the.local.host.name with local (Exim x.yz) + └─────result: Received: from CALLER by the.local.host.name with local (Exim x.yz) (envelope-from ) id 10HmaX-0005vi-00 - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 LOG: MAIN <= CALLER@test.ex U=CALLER P=local S=sss created log directory TESTSUITE/spool/log @@ -116,43 +116,43 @@ Exim version x.yz .... configuration file is TESTSUITE/test-config trusted user admin user - /considering: $domain - |__expanding: $domain - \_____result: domain1.ex + ┌considering: $domain + ├──expanding: $domain + └─────result: domain1.ex LOG: MAIN == userx@domain1.ex R=smarthost T=smtp defer (-1): domain matches queue_smtp_domains, or -odqs set LOG: MAIN == userx@domain2.ex R=smarthost T=smtp defer (-1): domain matches queue_smtp_domains, or -odqs set - /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}} - |__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}} - |__expanding: $h_precedence: - \_____result: - /considering: (?i)bulk|list|junk} }{ 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}} - |__expanding: $h_auto-submitted: - \_____result: - /considering: (?i)auto-generated|auto-replied} }} {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}} - |__expanding: no - |_____result: no - \___skipping: result is not used - /considering: yes}} - |__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}} - \_____result: yes + ┌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}} + ├──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}} + ├──expanding: $h_precedence: + └─────result: + ┌considering: (?i)bulk|list|junk} }{ 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}} + ├──expanding: $h_auto-submitted: + └─────result: + ┌considering: (?i)auto-generated|auto-replied} }} {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}} + ├──expanding: no + ├─────result: no + └───skipping: result is not used + ┌considering: yes}} + ├──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}} + └─────result: yes >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... @@ -160,32 +160,32 @@ configuration file is TESTSUITE/test-config admin user LOG: smtp_connection MAIN SMTP connection from CALLER - /considering: $smtp_active_hostname ESMTP Exim $version_number $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}} - |__expanding: $sender_helo_name - \_____result: ehlo.domain - /considering: +dlist}} - |__expanding: +dlist - \_____result: +dlist - /considering: $domain - |__expanding: $domain - \_____result: ehlo.domain - |__condition: match_domain {$sender_helo_name}{+dlist} - |_____result: true - |__expanding: ${if match_domain {$sender_helo_name}{+dlist}} - \_____result: true - /considering: domain=$domain/sender_domain=$sender_address_domain - |__expanding: domain=$domain/sender_domain=$sender_address_domain - \_____result: domain=/sender_domain=sender.domain - /considering: domain=$domain/sender_domain=$sender_address_domain - |__expanding: domain=$domain/sender_domain=$sender_address_domain - \_____result: domain=recipient.domain/sender_domain=sender.domain - /considering: domain=$domain/sender_domain=$sender_address_domain - |__expanding: domain=$domain/sender_domain=$sender_address_domain - \_____result: domain=recipient.domain/sender_domain=sender.domain + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $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}} + ├──expanding: $sender_helo_name + └─────result: ehlo.domain + ┌considering: +dlist}} + ├──expanding: +dlist + └─────result: +dlist + ┌considering: $domain + ├──expanding: $domain + └─────result: ehlo.domain + ├──condition: match_domain {$sender_helo_name}{+dlist} + ├─────result: true + ├──expanding: ${if match_domain {$sender_helo_name}{+dlist}} + └─────result: true + ┌considering: domain=$domain/sender_domain=$sender_address_domain + ├──expanding: domain=$domain/sender_domain=$sender_address_domain + └─────result: domain=/sender_domain=sender.domain + ┌considering: domain=$domain/sender_domain=$sender_address_domain + ├──expanding: domain=$domain/sender_domain=$sender_address_domain + └─────result: domain=recipient.domain/sender_domain=sender.domain + ┌considering: domain=$domain/sender_domain=$sender_address_domain + ├──expanding: domain=$domain/sender_domain=$sender_address_domain + └─────result: domain=recipient.domain/sender_domain=sender.domain LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/3000 b/test/stderr/3000 index b77ca8923..cff64ae7b 100644 --- a/test/stderr/3000 +++ b/test/stderr/3000 @@ -2,45 +2,45 @@ Exim version x.yz .... configuration file is TESTSUITE/test-config admin user - /considering: ${perl{foo}{arg1}} - /considering: foo}{arg1}} - |__expanding: foo - \_____result: foo - /considering: arg1}} - |__expanding: arg1 - \_____result: arg1 + ┌considering: ${perl{foo}{arg1}} + ┌considering: foo}{arg1}} + ├──expanding: foo + └─────result: foo + ┌considering: arg1}} + ├──expanding: arg1 + └─────result: arg1 Starting Perl interpreter - |__expanding: ${perl{foo}{arg1}} - \_____result: Subroutine foo called with args: arg1 - /considering: ${perl{foo_undef}} - /considering: foo_undef}} - |__expanding: foo_undef - \_____result: foo_undef - |failed to expand: ${perl{foo_undef}} - |___error message: Perl subroutine "foo_undef" returned undef to force failure - \failure was forced - /considering: ${perl{debug_write}{debug from Perl\n}} - /considering: debug_write}{debug from Perl\n}} - |__expanding: debug_write - \_____result: debug_write - /considering: debug from Perl\n}} - |__expanding: debug from Perl\n - \_____result: debug from Perl + ├──expanding: ${perl{foo}{arg1}} + └─────result: Subroutine foo called with args: arg1 + ┌considering: ${perl{foo_undef}} + ┌considering: foo_undef}} + ├──expanding: foo_undef + └─────result: foo_undef + ├failed to expand: ${perl{foo_undef}} + ├───error message: Perl subroutine "foo_undef" returned undef to force failure + └failure was forced + ┌considering: ${perl{debug_write}{debug from Perl\n}} + ┌considering: debug_write}{debug from Perl\n}} + ├──expanding: debug_write + └─────result: debug_write + ┌considering: debug from Perl\n}} + ├──expanding: debug from Perl\n + └─────result: debug from Perl debug from Perl - |__expanding: ${perl{debug_write}{debug from Perl\n}} - \_____result: Wrote debug - /considering: ${perl{log_write}{log from Perl}} - /considering: log_write}{log from Perl}} - |__expanding: log_write - \_____result: log_write - /considering: log from Perl}} - |__expanding: log from Perl - \_____result: log from Perl + ├──expanding: ${perl{debug_write}{debug from Perl\n}} + └─────result: Wrote debug + ┌considering: ${perl{log_write}{log from Perl}} + ┌considering: log_write}{log from Perl}} + ├──expanding: log_write + └─────result: log_write + ┌considering: log from Perl}} + ├──expanding: log from Perl + └─────result: log from Perl LOG: MAIN log from Perl - |__expanding: ${perl{log_write}{log from Perl}} - \_____result: Wrote log + ├──expanding: ${perl{log_write}{log from Perl}} + └─────result: Wrote log >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> LOG: smtp_connection MAIN SMTP connection from CALLER diff --git a/test/stderr/5410 b/test/stderr/5410 index 6c1f10e39..29b387261 100644 --- a/test/stderr/5410 +++ b/test/stderr/5410 @@ -4,40 +4,40 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - /considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full - |__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full - \_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full + └─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) in pipelining_advertise_hosts? yes (matched "*") in chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ┌considering: SERVER}{server}{queue}{cutthrough}} + ├──expanding: SERVER + └─────result: SERVER + ┌considering: server}{queue}{cutthrough}} + ├──expanding: server + └─────result: server + ├──condition: eq {SERVER}{server} + ├─────result: false + ┌───scanning: queue}{cutthrough}} + ├──expanding: queue + ├─────result: queue + └───skipping: result is not used + ┌considering: cutthrough}} + ├──expanding: cutthrough + └─────result: cutthrough + ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} + └─────result: cutthrough using ACL "cutthrough" processing "accept" check control = cutthrough_delivery check verify = recipient domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: userx + ┌considering: $local_part + ├──expanding: $local_part + └─────result: userx domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -45,14 +45,14 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: userx + ┌considering: $local_part + ├──expanding: $local_part + └─────result: userx domain.com in "*"? yes (matched "*") Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex + ┌considering: $primary_hostname + ├──expanding: $primary_hostname + └─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -63,43 +63,43 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: userx - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: false - / scanning: *}{:}} - |__expanding: * - |_____result: * - \___skipping: result is not used - /considering: :}} - |__expanding: : - \_____result: : - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: : + ┌considering: ${if eq {$address_data}{usery}{*}{:}} + ┌considering: $address_data}{usery}{*}{:}} + ├──expanding: $address_data + └─────result: userx + ┌considering: usery}{*}{:}} + ├──expanding: usery + └─────result: usery + ├──condition: eq {$address_data}{usery} + ├─────result: false + ┌───scanning: *}{:}} + ├──expanding: * + ├─────result: * + └───skipping: result is not used + ┌considering: :}} + ├──expanding: : + └─────result: : + ├──expanding: ${if eq {$address_data}{usery}{*}{:}} + └─────result: : 127.0.0.1 in hosts_avoid_tls? no (end of list) - /considering: ${if eq {$address_data}{userz}{*}{:}} - /considering: $address_data}{userz}{*}{:}} - |__expanding: $address_data - \_____result: userx - /considering: userz}{*}{:}} - |__expanding: userz - \_____result: userz - |__condition: eq {$address_data}{userz} - |_____result: false - / scanning: *}{:}} - |__expanding: * - |_____result: * - \___skipping: result is not used - /considering: :}} - |__expanding: : - \_____result: : - |__expanding: ${if eq {$address_data}{userz}{*}{:}} - \_____result: : + ┌considering: ${if eq {$address_data}{userz}{*}{:}} + ┌considering: $address_data}{userz}{*}{:}} + ├──expanding: $address_data + └─────result: userx + ┌considering: userz}{*}{:}} + ├──expanding: userz + └─────result: userz + ├──condition: eq {$address_data}{userz} + ├─────result: false + ┌───scanning: *}{:}} + ├──expanding: * + ├─────result: * + └───skipping: result is not used + ┌considering: :}} + ├──expanding: : + └─────result: : + ├──expanding: ${if eq {$address_data}{userz}{*}{:}} + └─────result: : 127.0.0.1 in hosts_verify_avoid_tls? no (end of list) SMTP>> STARTTLS cmd buf flush ddd bytes @@ -131,117 +131,117 @@ accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: true + ┌considering: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - \_____result: (helo=myhost.test.ex) + └─────result: (helo=myhost.test.ex) - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER (helo=myhost.test.ex) + └─────result: from CALLER (helo=myhost.test.ex) - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: with $received_protocol - \_____result: with local-esmtp - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local-esmtp + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: true - /considering: + ├──condition: def:received_for + ├─────result: true + ┌considering: for $received_for}} - |__expanding: + ├──expanding: for $received_for - \_____result: + └─────result: for userx@domain.com - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) + └─────result: Received: from CALLER (helo=myhost.test.ex) by myhost.test.ex with local-esmtp (Exim x.yz) (envelope-from ) id 10HmaX-0005vi-00 for userx@domain.com ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmaY-0005vi-00 LOG: MAIN @@ -263,40 +263,40 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - /considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full - |__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full - \_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full + └─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) in pipelining_advertise_hosts? yes (matched "*") in chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ┌considering: SERVER}{server}{queue}{cutthrough}} + ├──expanding: SERVER + └─────result: SERVER + ┌considering: server}{queue}{cutthrough}} + ├──expanding: server + └─────result: server + ├──condition: eq {SERVER}{server} + ├─────result: false + ┌───scanning: queue}{cutthrough}} + ├──expanding: queue + ├─────result: queue + └───skipping: result is not used + ┌considering: cutthrough}} + ├──expanding: cutthrough + └─────result: cutthrough + ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} + └─────result: cutthrough using ACL "cutthrough" processing "accept" check control = cutthrough_delivery check verify = recipient domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -304,14 +304,14 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex + ┌considering: $primary_hostname + ├──expanding: $primary_hostname + └─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -322,24 +322,24 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: usery - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: true - /considering: *}{:}} - |__expanding: * - \_____result: * - / scanning: :}} - |__expanding: : - |_____result: : - \___skipping: result is not used - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: * + ┌considering: ${if eq {$address_data}{usery}{*}{:}} + ┌considering: $address_data}{usery}{*}{:}} + ├──expanding: $address_data + └─────result: usery + ┌considering: usery}{*}{:}} + ├──expanding: usery + └─────result: usery + ├──condition: eq {$address_data}{usery} + ├─────result: true + ┌considering: *}{:}} + ├──expanding: * + └─────result: * + ┌───scanning: :}} + ├──expanding: : + ├─────result: : + └───skipping: result is not used + ├──expanding: ${if eq {$address_data}{usery}{*}{:}} + └─────result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING @@ -357,117 +357,117 @@ accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: true + ┌considering: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - \_____result: (helo=myhost.test.ex) + └─────result: (helo=myhost.test.ex) - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER (helo=myhost.test.ex) + └─────result: from CALLER (helo=myhost.test.ex) - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: with $received_protocol - \_____result: with local-esmtp - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local-esmtp + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: true - /considering: + ├──condition: def:received_for + ├─────result: true + ┌considering: for $received_for}} - |__expanding: + ├──expanding: for $received_for - \_____result: + └─────result: for usery@domain.com - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) + └─────result: Received: from CALLER (helo=myhost.test.ex) by myhost.test.ex with local-esmtp (Exim x.yz) (envelope-from ) id 10HmaZ-0005vi-00 for usery@domain.com ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbA-0005vi-00 LOG: MAIN @@ -489,40 +489,40 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - /considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full - |__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full - \_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full + └─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) in pipelining_advertise_hosts? yes (matched "*") in chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ┌considering: SERVER}{server}{queue}{cutthrough}} + ├──expanding: SERVER + └─────result: SERVER + ┌considering: server}{queue}{cutthrough}} + ├──expanding: server + └─────result: server + ├──condition: eq {SERVER}{server} + ├─────result: false + ┌───scanning: queue}{cutthrough}} + ├──expanding: queue + ├─────result: queue + └───skipping: result is not used + ┌considering: cutthrough}} + ├──expanding: cutthrough + └─────result: cutthrough + ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} + └─────result: cutthrough using ACL "cutthrough" processing "accept" check control = cutthrough_delivery check verify = recipient domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -530,14 +530,14 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex + ┌considering: $primary_hostname + ├──expanding: $primary_hostname + └─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -548,24 +548,24 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: usery - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: true - /considering: *}{:}} - |__expanding: * - \_____result: * - / scanning: :}} - |__expanding: : - |_____result: : - \___skipping: result is not used - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: * + ┌considering: ${if eq {$address_data}{usery}{*}{:}} + ┌considering: $address_data}{usery}{*}{:}} + ├──expanding: $address_data + └─────result: usery + ┌considering: usery}{*}{:}} + ├──expanding: usery + └─────result: usery + ├──condition: eq {$address_data}{usery} + ├─────result: true + ┌considering: *}{:}} + ├──expanding: * + └─────result: * + ┌───scanning: :}} + ├──expanding: : + ├─────result: : + └───skipping: result is not used + ├──expanding: ${if eq {$address_data}{usery}{*}{:}} + └─────result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING @@ -583,117 +583,117 @@ accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: true + ┌considering: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - \_____result: (helo=myhost.test.ex) + └─────result: (helo=myhost.test.ex) - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER (helo=myhost.test.ex) + └─────result: from CALLER (helo=myhost.test.ex) - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: with $received_protocol - \_____result: with local-esmtp - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local-esmtp + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: true - /considering: + ├──condition: def:received_for + ├─────result: true + ┌considering: for $received_for}} - |__expanding: + ├──expanding: for $received_for - \_____result: + └─────result: for usery@domain.com - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) + └─────result: Received: from CALLER (helo=myhost.test.ex) by myhost.test.ex with local-esmtp (Exim x.yz) (envelope-from ) id 10HmbB-0005vi-00 for usery@domain.com ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbC-0005vi-00 LOG: MAIN diff --git a/test/stderr/5420 b/test/stderr/5420 index 0f197afd1..36ac19bb4 100644 --- a/test/stderr/5420 +++ b/test/stderr/5420 @@ -4,40 +4,40 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - /considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full - |__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full - \_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full + └─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) in pipelining_advertise_hosts? yes (matched "*") in chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ┌considering: SERVER}{server}{queue}{cutthrough}} + ├──expanding: SERVER + └─────result: SERVER + ┌considering: server}{queue}{cutthrough}} + ├──expanding: server + └─────result: server + ├──condition: eq {SERVER}{server} + ├─────result: false + ┌───scanning: queue}{cutthrough}} + ├──expanding: queue + ├─────result: queue + └───skipping: result is not used + ┌considering: cutthrough}} + ├──expanding: cutthrough + └─────result: cutthrough + ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} + └─────result: cutthrough using ACL "cutthrough" processing "accept" check control = cutthrough_delivery check verify = recipient domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: userx + ┌considering: $local_part + ├──expanding: $local_part + └─────result: userx domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -45,14 +45,14 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: userx + ┌considering: $local_part + ├──expanding: $local_part + └─────result: userx domain.com in "*"? yes (matched "*") Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex + ┌considering: $primary_hostname + ├──expanding: $primary_hostname + └─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -63,43 +63,43 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: userx - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: false - / scanning: *}{:}} - |__expanding: * - |_____result: * - \___skipping: result is not used - /considering: :}} - |__expanding: : - \_____result: : - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: : + ┌considering: ${if eq {$address_data}{usery}{*}{:}} + ┌considering: $address_data}{usery}{*}{:}} + ├──expanding: $address_data + └─────result: userx + ┌considering: usery}{*}{:}} + ├──expanding: usery + └─────result: usery + ├──condition: eq {$address_data}{usery} + ├─────result: false + ┌───scanning: *}{:}} + ├──expanding: * + ├─────result: * + └───skipping: result is not used + ┌considering: :}} + ├──expanding: : + └─────result: : + ├──expanding: ${if eq {$address_data}{usery}{*}{:}} + └─────result: : 127.0.0.1 in hosts_avoid_tls? no (end of list) - /considering: ${if eq {$address_data}{userz}{*}{:}} - /considering: $address_data}{userz}{*}{:}} - |__expanding: $address_data - \_____result: userx - /considering: userz}{*}{:}} - |__expanding: userz - \_____result: userz - |__condition: eq {$address_data}{userz} - |_____result: false - / scanning: *}{:}} - |__expanding: * - |_____result: * - \___skipping: result is not used - /considering: :}} - |__expanding: : - \_____result: : - |__expanding: ${if eq {$address_data}{userz}{*}{:}} - \_____result: : + ┌considering: ${if eq {$address_data}{userz}{*}{:}} + ┌considering: $address_data}{userz}{*}{:}} + ├──expanding: $address_data + └─────result: userx + ┌considering: userz}{*}{:}} + ├──expanding: userz + └─────result: userz + ├──condition: eq {$address_data}{userz} + ├─────result: false + ┌───scanning: *}{:}} + ├──expanding: * + ├─────result: * + └───skipping: result is not used + ┌considering: :}} + ├──expanding: : + └─────result: : + ├──expanding: ${if eq {$address_data}{userz}{*}{:}} + └─────result: : 127.0.0.1 in hosts_verify_avoid_tls? no (end of list) SMTP>> STARTTLS cmd buf flush ddd bytes @@ -130,117 +130,117 @@ accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: true + ┌considering: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - \_____result: (helo=myhost.test.ex) + └─────result: (helo=myhost.test.ex) - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER (helo=myhost.test.ex) + └─────result: from CALLER (helo=myhost.test.ex) - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: with $received_protocol - \_____result: with local-esmtp - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local-esmtp + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: true - /considering: + ├──condition: def:received_for + ├─────result: true + ┌considering: for $received_for}} - |__expanding: + ├──expanding: for $received_for - \_____result: + └─────result: for userx@domain.com - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) + └─────result: Received: from CALLER (helo=myhost.test.ex) by myhost.test.ex with local-esmtp (Exim x.yz) (envelope-from ) id 10HmaX-0005vi-00 for userx@domain.com ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmaY-0005vi-00 LOG: MAIN @@ -262,40 +262,40 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - /considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full - |__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full - \_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full + └─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) in pipelining_advertise_hosts? yes (matched "*") in chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ┌considering: SERVER}{server}{queue}{cutthrough}} + ├──expanding: SERVER + └─────result: SERVER + ┌considering: server}{queue}{cutthrough}} + ├──expanding: server + └─────result: server + ├──condition: eq {SERVER}{server} + ├─────result: false + ┌───scanning: queue}{cutthrough}} + ├──expanding: queue + ├─────result: queue + └───skipping: result is not used + ┌considering: cutthrough}} + ├──expanding: cutthrough + └─────result: cutthrough + ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} + └─────result: cutthrough using ACL "cutthrough" processing "accept" check control = cutthrough_delivery check verify = recipient domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -303,14 +303,14 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex + ┌considering: $primary_hostname + ├──expanding: $primary_hostname + └─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -321,24 +321,24 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: usery - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: true - /considering: *}{:}} - |__expanding: * - \_____result: * - / scanning: :}} - |__expanding: : - |_____result: : - \___skipping: result is not used - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: * + ┌considering: ${if eq {$address_data}{usery}{*}{:}} + ┌considering: $address_data}{usery}{*}{:}} + ├──expanding: $address_data + └─────result: usery + ┌considering: usery}{*}{:}} + ├──expanding: usery + └─────result: usery + ├──condition: eq {$address_data}{usery} + ├─────result: true + ┌considering: *}{:}} + ├──expanding: * + └─────result: * + ┌───scanning: :}} + ├──expanding: : + ├─────result: : + └───skipping: result is not used + ├──expanding: ${if eq {$address_data}{usery}{*}{:}} + └─────result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING @@ -356,117 +356,117 @@ accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: true + ┌considering: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - \_____result: (helo=myhost.test.ex) + └─────result: (helo=myhost.test.ex) - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER (helo=myhost.test.ex) + └─────result: from CALLER (helo=myhost.test.ex) - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: with $received_protocol - \_____result: with local-esmtp - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local-esmtp + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: true - /considering: + ├──condition: def:received_for + ├─────result: true + ┌considering: for $received_for}} - |__expanding: + ├──expanding: for $received_for - \_____result: + └─────result: for usery@domain.com - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) + └─────result: Received: from CALLER (helo=myhost.test.ex) by myhost.test.ex with local-esmtp (Exim x.yz) (envelope-from ) id 10HmaZ-0005vi-00 for usery@domain.com ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbA-0005vi-00 LOG: MAIN @@ -488,40 +488,40 @@ admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER - /considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full - |__expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full - \_____result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full + └─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) in pipelining_advertise_hosts? yes (matched "*") in chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ┌considering: ${if eq {SERVER}{server}{queue}{cutthrough}} + ┌considering: SERVER}{server}{queue}{cutthrough}} + ├──expanding: SERVER + └─────result: SERVER + ┌considering: server}{queue}{cutthrough}} + ├──expanding: server + └─────result: server + ├──condition: eq {SERVER}{server} + ├─────result: false + ┌───scanning: queue}{cutthrough}} + ├──expanding: queue + ├─────result: queue + └───skipping: result is not used + ┌considering: cutthrough}} + ├──expanding: cutthrough + └─────result: cutthrough + ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} + └─────result: cutthrough using ACL "cutthrough" processing "accept" check control = cutthrough_delivery check verify = recipient domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -529,14 +529,14 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ┌considering: $local_part + ├──expanding: $local_part + └─────result: usery domain.com in "*"? yes (matched "*") Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex + ┌considering: $primary_hostname + ├──expanding: $primary_hostname + └─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -547,24 +547,24 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: usery - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: true - /considering: *}{:}} - |__expanding: * - \_____result: * - / scanning: :}} - |__expanding: : - |_____result: : - \___skipping: result is not used - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: * + ┌considering: ${if eq {$address_data}{usery}{*}{:}} + ┌considering: $address_data}{usery}{*}{:}} + ├──expanding: $address_data + └─────result: usery + ┌considering: usery}{*}{:}} + ├──expanding: usery + └─────result: usery + ├──condition: eq {$address_data}{usery} + ├─────result: true + ┌considering: *}{:}} + ├──expanding: * + └─────result: * + ┌───scanning: :}} + ├──expanding: : + ├─────result: : + └───skipping: result is not used + ├──expanding: ${if eq {$address_data}{usery}{*}{:}} + └─────result: * 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING @@ -582,117 +582,117 @@ accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 - /considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──condition: def:sender_rcvhost + ├─────result: false + ┌───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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 + ├──expanding: from $sender_rcvhost - |_____result: from + ├─────result: from - \___skipping: result is not used - /considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + └───skipping: result is not used + ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__condition: def:sender_ident - |_____result: true - /considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──condition: def:sender_ident + ├─────result: true + ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${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) + .┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - .|__expanding: $sender_ident - .\_____result: CALLER - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) + .├──expanding: $sender_ident + .└─────result: CALLER + ├──expanding: from ${quote_local_part:$sender_ident} + └─────result: from CALLER + ├──condition: def:sender_helo_name + ├─────result: true + ┌considering: (helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (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) + ├──expanding: (helo=$sender_helo_name) - \_____result: (helo=myhost.test.ex) + └─────result: (helo=myhost.test.ex) - |__expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} - \_____result: from CALLER (helo=myhost.test.ex) + └─────result: from CALLER (helo=myhost.test.ex) - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (Exim $version_number) + ├──condition: def:received_protocol + ├─────result: true + ┌considering: with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: with $received_protocol - \_____result: with local-esmtp - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) + ├──expanding: with $received_protocol + └─────result: with local-esmtp + ├──condition: def:tls_cipher + ├─────result: false + ┌───scanning: ($tls_cipher) }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: ($tls_cipher) + ├──expanding: ($tls_cipher) - |_____result: () + ├─────result: () - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) + └───skipping: result is not used + ├──condition: def:sender_address + ├─────result: true + ┌considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - |__expanding: (envelope-from <$sender_address>) + ├──expanding: (envelope-from <$sender_address>) - \_____result: (envelope-from ) + └─────result: (envelope-from ) - |__condition: def:received_for - |_____result: true - /considering: + ├──condition: def:received_for + ├─────result: true + ┌considering: for $received_for}} - |__expanding: + ├──expanding: for $received_for - \_____result: + └─────result: for usery@domain.com - |__expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost + ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) + └─────result: Received: from CALLER (helo=myhost.test.ex) by myhost.test.ex with local-esmtp (Exim x.yz) (envelope-from ) id 10HmbB-0005vi-00 for usery@domain.com ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbC-0005vi-00 LOG: MAIN diff --git a/test/stdout/0574 b/test/stdout/0574 index 2c909e5d4..a9d9cd9d2 100644 --- a/test/stdout/0574 +++ b/test/stdout/0574 @@ -35,9 +35,9 @@ accept: condition test succeeded in ACL "chk_data" end of ACL "chk_data": ACCEPT calling local_scan(); timeout=300 local_scan() returned 0 NULL - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ┌considering: ${tod_full} + ├──expanding: ${tod_full} + └─────result: Tue, 2 Mar 1999 09:44:33 +0000 Writing spool header file: TESTSUITE/spool//input//hdr.pppp DSN: Write SPOOL :-dsn_envid NULL DSN: Write SPOOL :-dsn_ret 0 -- 2.30.2