├──expanding: primary_hostname: $primary_hostname
╰─────result: primary_hostname: myhost.test.ex
╭considering: sender_address: $sender_address
├──expanding: primary_hostname: $primary_hostname
╰─────result: primary_hostname: myhost.test.ex
╭considering: sender_address: $sender_address
├──expanding: sender_address: $sender_address
╰─────result: sender_address: sndr@dom
╰──(tainted)
╭considering: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
├──expanding: sender_address: $sender_address
╰─────result: sender_address: sndr@dom
╰──(tainted)
╭considering: match: ${if match{abcd}{\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: \N^([ab]+)(\w+)$\N
╰─────result: ^([ab]+)(\w+)$
├──condition: match{abcd}{\N^([ab]+)(\w+)$\N}
├─────result: true
╭considering: $2$1}fail}
├──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}
├──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}
├──expanding: \N^([ab]+)(\w+)$\N
╰─────result: ^([ab]+)(\w+)$
├──condition: match{wxyz}{\N^([ab]+)(\w+)$\N}
├─────result: false
╭───scanning: $2$1}fail}
├──expanding: \N^([ab]+)(\w+)$\N
╰─────result: ^([ab]+)(\w+)$
├──condition: match{wxyz}{\N^([ab]+)(\w+)$\N}
├─────result: false
╭───scanning: $2$1}fail}
╰failure was forced
╭considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
╭considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
╰failure was forced
╭considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
╭considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
├──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}}
├──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}}
├──expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
╰─────result: match_address: no
>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
├──expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
╰─────result: match_address: no
>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
|--expanding: primary_hostname: $primary_hostname
\_____result: primary_hostname: myhost.test.ex
/considering: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
|--expanding: primary_hostname: $primary_hostname
\_____result: primary_hostname: myhost.test.ex
/considering: match: ${if match{abcd}{\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: \N^([ab]+)(\w+)$\N
\_____result: ^([ab]+)(\w+)$
|--condition: match{abcd}{\N^([ab]+)(\w+)$\N}
|-----result: true
/considering: $2$1}fail}
|--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}
|--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}
|--expanding: \N^([ab]+)(\w+)$\N
\_____result: ^([ab]+)(\w+)$
|--condition: match{wxyz}{\N^([ab]+)(\w+)$\N}
|-----result: false
/---scanning: $2$1}fail}
|--expanding: \N^([ab]+)(\w+)$\N
\_____result: ^([ab]+)(\w+)$
|--condition: match{wxyz}{\N^([ab]+)(\w+)$\N}
|-----result: false
/---scanning: $2$1}fail}
\failure was forced
/considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
/considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
\failure was forced
/considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
/considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
|--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}}
|--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}}
|--expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
\_____result: match_address: no
>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
|--expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
\_____result: match_address: no
>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
admin user
dropping to exim gid; retaining priv uid
╭considering: -oMa sender_host_address = $sender_host_address
admin user
dropping to exim gid; retaining priv uid
╭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
╰──(tainted)
╭considering: sender_host_port = $sender_host_port
├──expanding: -oMa sender_host_address = $sender_host_address
╰─────result: -oMa sender_host_address = V4NET.0.0.1
╰──(tainted)
╭considering: sender_host_port = $sender_host_port
├──expanding: sender_host_port = $sender_host_port
╰─────result: sender_host_port = 1234
╭considering: -oMaa sender_host_authenticated = $sender_host_authenticated
├──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
╰──(tainted)
╭considering: -oMai authenticated_id = $authenticated_id
├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
╰─────result: -oMaa sender_host_authenticated = AAA
╰──(tainted)
╭considering: -oMai authenticated_id = $authenticated_id
├──expanding: -oMai authenticated_id = $authenticated_id
╰─────result: -oMai authenticated_id = philip
╰──(tainted)
╭considering: -oMas authenticated_sender = $authenticated_sender
├──expanding: -oMai authenticated_id = $authenticated_id
╰─────result: -oMai authenticated_id = philip
╰──(tainted)
╭considering: -oMas authenticated_sender = $authenticated_sender
├──expanding: -oMas authenticated_sender = $authenticated_sender
╰─────result: -oMas authenticated_sender = xx@yy.zz
╰──(tainted)
╭considering: -oMi interface_address = $interface_address
├──expanding: -oMas authenticated_sender = $authenticated_sender
╰─────result: -oMas authenticated_sender = xx@yy.zz
╰──(tainted)
╭considering: -oMi interface_address = $interface_address
├──expanding: -oMi interface_address = $interface_address
╰─────result: -oMi interface_address = 1.1.1.1
╰──(tainted)
╭considering: interface_port = $interface_port
├──expanding: -oMi interface_address = $interface_address
╰─────result: -oMi interface_address = 1.1.1.1
╰──(tainted)
╭considering: interface_port = $interface_port
├──expanding: interface_port = $interface_port
╰─────result: interface_port = 99
╭considering: -oMr received_protocol = $received_protocol
├──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
╰──(tainted)
╭considering: -oMt sender_ident = $sender_ident
├──expanding: -oMr received_protocol = $received_protocol
╰─────result: -oMr received_protocol = special
╰──(tainted)
╭considering: -oMt sender_ident = $sender_ident
admin user
dropping to exim gid; retaining priv uid
╭considering: -oMa sender_host_address = $sender_host_address
admin user
dropping to exim gid; retaining priv uid
╭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
╰──(tainted)
╭considering: sender_host_port = $sender_host_port
├──expanding: -oMa sender_host_address = $sender_host_address
╰─────result: -oMa sender_host_address = V4NET.0.0.1
╰──(tainted)
╭considering: sender_host_port = $sender_host_port
├──expanding: sender_host_port = $sender_host_port
╰─────result: sender_host_port = 1234
╭considering: -oMaa sender_host_authenticated = $sender_host_authenticated
├──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
╰──(tainted)
╭considering: -oMai authenticated_id = $authenticated_id
├──expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
╰─────result: -oMaa sender_host_authenticated = AAA
╰──(tainted)
╭considering: -oMai authenticated_id = $authenticated_id
├──expanding: -oMai authenticated_id = $authenticated_id
╰─────result: -oMai authenticated_id = philip
╰──(tainted)
╭considering: -oMas authenticated_sender = $authenticated_sender
├──expanding: -oMai authenticated_id = $authenticated_id
╰─────result: -oMai authenticated_id = philip
╰──(tainted)
╭considering: -oMas authenticated_sender = $authenticated_sender
├──expanding: -oMas authenticated_sender = $authenticated_sender
╰─────result: -oMas authenticated_sender = xx@yy.zz
╰──(tainted)
╭considering: -oMi interface_address = $interface_address
├──expanding: -oMas authenticated_sender = $authenticated_sender
╰─────result: -oMas authenticated_sender = xx@yy.zz
╰──(tainted)
╭considering: -oMi interface_address = $interface_address
├──expanding: -oMi interface_address = $interface_address
╰─────result: -oMi interface_address = 1.1.1.1
╰──(tainted)
╭considering: interface_port = $interface_port
├──expanding: -oMi interface_address = $interface_address
╰─────result: -oMi interface_address = 1.1.1.1
╰──(tainted)
╭considering: interface_port = $interface_port
├──expanding: interface_port = $interface_port
╰─────result: interface_port = 99
╭considering: -oMr received_protocol = $received_protocol
├──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
╰──(tainted)
╭considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
├──expanding: -oMr received_protocol = $received_protocol
╰─────result: -oMr received_protocol = special
╰──(tainted)
╭considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{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
├──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
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
>>> processing "accept" (TESTSUITE/test-config 42)
>>> accept: condition test succeeded in ACL "connect0"
>>> end of ACL "connect0": ACCEPT
>>> processing "accept" (TESTSUITE/test-config 42)
>>> accept: condition test succeeded in ACL "connect0"
>>> end of ACL "connect0": ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> processing "accept" (TESTSUITE/test-config 42)
>>> accept: condition test succeeded in ACL "connect0"
>>> end of ACL "connect0": ACCEPT
>>> processing "accept" (TESTSUITE/test-config 42)
>>> accept: condition test succeeded in ACL "connect0"
>>> end of ACL "connect0": ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> processing "accept" (TESTSUITE/test-config 42)
>>> accept: condition test succeeded in ACL "connect0"
>>> end of ACL "connect0": ACCEPT
>>> processing "accept" (TESTSUITE/test-config 42)
>>> accept: condition test succeeded in ACL "connect0"
>>> end of ACL "connect0": ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> processing "accept" (TESTSUITE/test-config 70)
>>> accept: condition test succeeded in inline ACL
>>> end of inline ACL: ACCEPT
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
>>> message: reply_address=<$reply_address>
>>> deny: condition test succeeded in ACL "check_data"
>>> end of ACL "check_data": DENY
Exim version x.yz ....
changed uid/gid: -C, -D, -be or -bf forces real uid
uid=CALLER_UID gid=CALLER_GID pid=pppp
Exim version x.yz ....
changed uid/gid: -C, -D, -be or -bf forces real uid
uid=CALLER_UID gid=CALLER_GID pid=pppp
dropping to exim gid; retaining priv uid
originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
sender address = CALLER@myhost.test.ex
dropping to exim gid; retaining priv uid
originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
sender address = CALLER@myhost.test.ex
-1.2.3.4 in "1.2.3"? no (malformed IPv4 address or address mask)
-1.2.3.4 in "1.2.3.4/abc"? no (malformed IPv4 address or address mask)
+ 1.2.3.4 in "1.2.3"? no (malformed IPv4 address or address mask)
+ 1.2.3.4 in "1.2.3.4/abc"? no (malformed IPv4 address or address mask)