X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/cc5a3f43827026193110cb663151a95eac4ee379..114b01dded2c9d72cdd44cac97a4d3cc9f22ddfd:/test/stderr/0085 diff --git a/test/stderr/0085 b/test/stderr/0085 index fb6810575..520e9de95 100644 --- a/test/stderr/0085 +++ b/test/stderr/0085 @@ -1,13 +1,10 @@ Exim version x.yz .... changed uid/gid: forcing real = effective - uid=uuuu gid=CALLER_GID pid=pppp + uid=uuuu gid=CALLER_GID pid=p1234 configuration file is TESTSUITE/test-config admin user changed uid/gid: privilege not needed - uid=EXIM_UID gid=EXIM_GID pid=pppp -DSN: smart1 propagating DSN -DSN: fail_remote_domains propagating DSN -DSN: smart2 propagating DSN + uid=EXIM_UID gid=EXIM_GID pid=p1234 seeking password data for user "CALLER": cache not available getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME @@ -22,16 +19,25 @@ routing x@y.z --------> smart1 router <-------- local_part=x domain=y.z checking domains +y.z in "smart.domain"? + list element: smart.domain y.z in "smart.domain"? no (end of list) smart1 router skipped: domains mismatch --------> fail_remote_domains router <-------- local_part=x domain=y.z checking domains -y.z in "test.ex : myhost.test.ex"? no (end of list) +y.z in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + y.z in "test.ex : myhost.test.ex"? + ╎list element: test.ex + ╎list element: myhost.test.ex + y.z in "test.ex : myhost.test.ex"? no (end of list) + end sublist local_domains y.z in "! +local_domains"? yes (end of list) calling fail_remote_domains router -rda_interpret (string): :fail: unrouteable mail domain "$domain" -expanded: :fail: unrouteable mail domain "y.z" +rda_interpret (string): ':fail: unrouteable mail domain "$domain"' +expanded: ':fail: unrouteable mail domain "y.z"' (tainted) file is not a filter file parse_forward_list: :fail: unrouteable mail domain "y.z" extract item: :fail: unrouteable mail domain "y.z" @@ -45,51 +51,68 @@ routing x@smart.domain --------> smart1 router <-------- local_part=x domain=smart.domain checking domains -smart.domain in "smart.domain"? yes (matched "smart.domain") +smart.domain in "smart.domain"? + list element: smart.domain + smart.domain in "smart.domain"? yes (matched "smart.domain") checking local_parts -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="smart.domain" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="smart.domain" -file lookup required for smart.domain - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -x in "x : y : abc@d.e.f"? yes (matched "x") + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="smart.domain" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="smart.domain" opts=NULL + file lookup required for smart.domain + in TESTSUITE/aux-fixed/0085.data + creating new cache entry + lookup yielded: x : y : abc@d.e.f +x in "x : y : abc@d.e.f"? + list element: x + x in "x : y : abc@d.e.f"? yes (matched "x") checking senders -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" - cached open -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="smart.domain" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="smart.domain" -cached data used for lookup of smart.domain - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -address match test: subject=abc@d.e.f pattern=x -d.e.f in "x"? no (end of list) -address match test: subject=abc@d.e.f pattern=y -d.e.f in "y"? no (end of list) -address match test: subject=abc@d.e.f pattern=abc@d.e.f -d.e.f in "d.e.f"? yes (matched "d.e.f") -abc@d.e.f in "x : y : abc@d.e.f"? yes (matched "abc@d.e.f") + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + cached open + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="smart.domain" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="smart.domain" opts=NULL + cached data used for lookup of smart.domain + in TESTSUITE/aux-fixed/0085.data + lookup yielded: x : y : abc@d.e.f +abc@d.e.f in "x : y : abc@d.e.f"? + list element: x + address match test: subject=abc@d.e.f pattern=x + d.e.f in "x"? + list element: x + d.e.f in "x"? no (end of list) + list element: y + address match test: subject=abc@d.e.f pattern=y + d.e.f in "y"? + list element: y + d.e.f in "y"? no (end of list) + list element: abc@d.e.f + address match test: subject=abc@d.e.f pattern=abc@d.e.f + d.e.f in "d.e.f"? + list element: d.e.f + d.e.f in "d.e.f"? yes (matched "d.e.f") + abc@d.e.f in "x : y : abc@d.e.f"? yes (matched "abc@d.e.f") calling smart1 router smart1 router called for x@smart.domain domain = smart.domain route_item = * -smart.domain in "*"? yes (matched "*") -original list of hosts = "" options = -expanded list of hosts = "" options = +smart.domain in "*"? + list element: * + smart.domain in "*"? yes (matched "*") +original list of hosts = '' options = '' +expanded list of hosts = '' options = '' queued for transport: local_part = x domain = smart.domain errors_to=NULL - domain_data=NULL localpart_data=NULL + domain_data=smart.domain local_part_data=x routed by smart1 router envelope to: x@smart.domain transport: @@ -102,65 +125,90 @@ routing x@test.ex --------> smart1 router <-------- local_part=x domain=test.ex checking domains +test.ex in "smart.domain"? + list element: smart.domain test.ex in "smart.domain"? no (end of list) smart1 router skipped: domains mismatch --------> fail_remote_domains router <-------- local_part=x domain=test.ex checking domains -test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex") -test.ex in "! +local_domains"? no (matched "! +local_domains") +test.ex in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + test.ex in "test.ex : myhost.test.ex"? + ╎list element: test.ex + ╎test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex") + end sublist local_domains + data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex' + test.ex in "! +local_domains"? no (matched "! +local_domains") fail_remote_domains router skipped: domains mismatch --------> smart2 router <-------- local_part=x domain=test.ex checking domains -test.ex in "test.ex"? yes (matched "test.ex") +test.ex in "test.ex"? + list element: test.ex + test.ex in "test.ex"? yes (matched "test.ex") checking local_parts -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" - cached open -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="test.ex" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="test.ex" -file lookup required for test.ex - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -x in "x : y : abc@d.e.f"? yes (matched "x") + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + cached open + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="test.ex" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="test.ex" opts=NULL + file lookup required for test.ex + in TESTSUITE/aux-fixed/0085.data + creating new cache entry + lookup yielded: x : y : abc@d.e.f +x in "x : y : abc@d.e.f"? + list element: x + x in "x : y : abc@d.e.f"? yes (matched "x") checking senders -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" - cached open -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="test.ex" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="test.ex" -cached data used for lookup of test.ex - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -address match test: subject=abc@d.e.f pattern=x -d.e.f in "x"? no (end of list) -address match test: subject=abc@d.e.f pattern=y -d.e.f in "y"? no (end of list) -address match test: subject=abc@d.e.f pattern=abc@d.e.f -d.e.f in "d.e.f"? yes (matched "d.e.f") -abc@d.e.f in "x : y : abc@d.e.f"? yes (matched "abc@d.e.f") + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + cached open + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="test.ex" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="test.ex" opts=NULL + cached data used for lookup of test.ex + in TESTSUITE/aux-fixed/0085.data + lookup yielded: x : y : abc@d.e.f +abc@d.e.f in "x : y : abc@d.e.f"? + list element: x + address match test: subject=abc@d.e.f pattern=x + d.e.f in "x"? + list element: x + d.e.f in "x"? no (end of list) + list element: y + address match test: subject=abc@d.e.f pattern=y + d.e.f in "y"? + list element: y + d.e.f in "y"? no (end of list) + list element: abc@d.e.f + address match test: subject=abc@d.e.f pattern=abc@d.e.f + d.e.f in "d.e.f"? + list element: d.e.f + d.e.f in "d.e.f"? yes (matched "d.e.f") + abc@d.e.f in "x : y : abc@d.e.f"? yes (matched "abc@d.e.f") checking require_files -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" - cached open -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="test.ex.files" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="test.ex.files" -file lookup required for test.ex.files - in TESTSUITE/aux-fixed/0085.data -lookup yielded: /etc/passwd + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + cached open + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="test.ex.files" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="test.ex.files" opts=NULL + file lookup required for test.ex.files + in TESTSUITE/aux-fixed/0085.data + creating new cache entry + lookup yielded: /etc/passwd file check: ${lookup{$domain.files}lsearch{TESTSUITE/aux-fixed/0085.data}{$value}} expanded file: /etc/passwd stat() yielded 0 @@ -171,7 +219,7 @@ set transport dummy queued for dummy transport: local_part = x domain = test.ex errors_to=NULL - domain_data=NULL localpart_data=NULL + domain_data=test.ex local_part_data=x routed by smart2 router envelope to: x@test.ex transport: dummy @@ -184,32 +232,41 @@ routing x@myhost.test.ex --------> smart1 router <-------- local_part=x domain=myhost.test.ex checking domains +myhost.test.ex in "smart.domain"? + list element: smart.domain myhost.test.ex in "smart.domain"? no (end of list) smart1 router skipped: domains mismatch --------> fail_remote_domains router <-------- local_part=x domain=myhost.test.ex checking domains -myhost.test.ex in "test.ex : myhost.test.ex"? yes (matched "myhost.test.ex") -myhost.test.ex in "! +local_domains"? no (matched "! +local_domains") +myhost.test.ex in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + myhost.test.ex in "test.ex : myhost.test.ex"? + ╎list element: test.ex + ╎list element: myhost.test.ex + ╎myhost.test.ex in "test.ex : myhost.test.ex"? yes (matched "myhost.test.ex") + end sublist local_domains + data from lookup saved for cache for +local_domains: key 'myhost.test.ex' value 'myhost.test.ex' + myhost.test.ex in "! +local_domains"? no (matched "! +local_domains") fail_remote_domains router skipped: domains mismatch --------> smart2 router <-------- local_part=x domain=myhost.test.ex checking domains +myhost.test.ex in "test.ex"? + list element: test.ex myhost.test.ex in "test.ex"? no (end of list) smart2 router skipped: domains mismatch no more routers search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>> Exim version x.yz .... changed uid/gid: forcing real = effective - uid=uuuu gid=CALLER_GID pid=pppp + uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config admin user changed uid/gid: privilege not needed - uid=EXIM_UID gid=EXIM_GID pid=pppp -DSN: smart1 propagating DSN -DSN: fail_remote_domains propagating DSN -DSN: smart2 propagating DSN + uid=EXIM_UID gid=EXIM_GID pid=p1235 seeking password data for user "CALLER": cache not available getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME @@ -224,16 +281,25 @@ routing x@y.z --------> smart1 router <-------- local_part=x domain=y.z checking domains +y.z in "smart.domain"? + list element: smart.domain y.z in "smart.domain"? no (end of list) smart1 router skipped: domains mismatch --------> fail_remote_domains router <-------- local_part=x domain=y.z checking domains -y.z in "test.ex : myhost.test.ex"? no (end of list) +y.z in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + y.z in "test.ex : myhost.test.ex"? + ╎list element: test.ex + ╎list element: myhost.test.ex + y.z in "test.ex : myhost.test.ex"? no (end of list) + end sublist local_domains y.z in "! +local_domains"? yes (end of list) calling fail_remote_domains router -rda_interpret (string): :fail: unrouteable mail domain "$domain" -expanded: :fail: unrouteable mail domain "y.z" +rda_interpret (string): ':fail: unrouteable mail domain "$domain"' +expanded: ':fail: unrouteable mail domain "y.z"' (tainted) file is not a filter file parse_forward_list: :fail: unrouteable mail domain "y.z" extract item: :fail: unrouteable mail domain "y.z" @@ -247,48 +313,68 @@ routing x@smart.domain --------> smart1 router <-------- local_part=x domain=smart.domain checking domains -smart.domain in "smart.domain"? yes (matched "smart.domain") +smart.domain in "smart.domain"? + list element: smart.domain + smart.domain in "smart.domain"? yes (matched "smart.domain") checking local_parts -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="smart.domain" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="smart.domain" -file lookup required for smart.domain - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -x in "x : y : abc@d.e.f"? yes (matched "x") + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="smart.domain" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="smart.domain" opts=NULL + file lookup required for smart.domain + in TESTSUITE/aux-fixed/0085.data + creating new cache entry + lookup yielded: x : y : abc@d.e.f +x in "x : y : abc@d.e.f"? + list element: x + x in "x : y : abc@d.e.f"? yes (matched "x") checking senders -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" - cached open -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="smart.domain" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="smart.domain" -cached data used for lookup of smart.domain - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -address match test: subject=CALLER@myhost.test.ex pattern=x -myhost.test.ex in "x"? no (end of list) -address match test: subject=CALLER@myhost.test.ex pattern=y -myhost.test.ex in "y"? no (end of list) -address match test: subject=CALLER@myhost.test.ex pattern=abc@d.e.f + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + cached open + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="smart.domain" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="smart.domain" opts=NULL + cached data used for lookup of smart.domain + in TESTSUITE/aux-fixed/0085.data + lookup yielded: x : y : abc@d.e.f +CALLER@myhost.test.ex in "x : y : abc@d.e.f"? + list element: x + address match test: subject=CALLER@myhost.test.ex pattern=x + myhost.test.ex in "x"? + list element: x + myhost.test.ex in "x"? no (end of list) + list element: y + address match test: subject=CALLER@myhost.test.ex pattern=y + myhost.test.ex in "y"? + list element: y + myhost.test.ex in "y"? no (end of list) + list element: abc@d.e.f + address match test: subject=CALLER@myhost.test.ex pattern=abc@d.e.f CALLER@myhost.test.ex in "x : y : abc@d.e.f"? no (end of list) smart1 router skipped: senders mismatch --------> fail_remote_domains router <-------- local_part=x domain=smart.domain checking domains -smart.domain in "test.ex : myhost.test.ex"? no (end of list) +smart.domain in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + smart.domain in "test.ex : myhost.test.ex"? + ╎list element: test.ex + ╎list element: myhost.test.ex + smart.domain in "test.ex : myhost.test.ex"? no (end of list) + end sublist local_domains smart.domain in "! +local_domains"? yes (end of list) calling fail_remote_domains router -rda_interpret (string): :fail: unrouteable mail domain "$domain" -expanded: :fail: unrouteable mail domain "smart.domain" +rda_interpret (string): ':fail: unrouteable mail domain "$domain"' +expanded: ':fail: unrouteable mail domain "smart.domain"' (tainted) file is not a filter file parse_forward_list: :fail: unrouteable mail domain "smart.domain" extract item: :fail: unrouteable mail domain "smart.domain" @@ -302,50 +388,72 @@ routing x@test.ex --------> smart1 router <-------- local_part=x domain=test.ex checking domains +test.ex in "smart.domain"? + list element: smart.domain test.ex in "smart.domain"? no (end of list) smart1 router skipped: domains mismatch --------> fail_remote_domains router <-------- local_part=x domain=test.ex checking domains -test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex") -test.ex in "! +local_domains"? no (matched "! +local_domains") +test.ex in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + test.ex in "test.ex : myhost.test.ex"? + ╎list element: test.ex + ╎test.ex in "test.ex : myhost.test.ex"? yes (matched "test.ex") + end sublist local_domains + data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex' + test.ex in "! +local_domains"? no (matched "! +local_domains") fail_remote_domains router skipped: domains mismatch --------> smart2 router <-------- local_part=x domain=test.ex checking domains -test.ex in "test.ex"? yes (matched "test.ex") +test.ex in "test.ex"? + list element: test.ex + test.ex in "test.ex"? yes (matched "test.ex") checking local_parts -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" - cached open -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="test.ex" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="test.ex" -file lookup required for test.ex - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -x in "x : y : abc@d.e.f"? yes (matched "x") + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + cached open + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="test.ex" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="test.ex" opts=NULL + file lookup required for test.ex + in TESTSUITE/aux-fixed/0085.data + creating new cache entry + lookup yielded: x : y : abc@d.e.f +x in "x : y : abc@d.e.f"? + list element: x + x in "x : y : abc@d.e.f"? yes (matched "x") checking senders -search_open: lsearch "TESTSUITE/aux-fixed/0085.data" - cached open -search_find: file="TESTSUITE/aux-fixed/0085.data" - key="test.ex" partial=-1 affix=NULL starflags=0 -LRU list: - 0TESTSUITE/aux-fixed/0085.data - End -internal_search_find: file="TESTSUITE/aux-fixed/0085.data" - type=lsearch key="test.ex" -cached data used for lookup of test.ex - in TESTSUITE/aux-fixed/0085.data -lookup yielded: x : y : abc@d.e.f -address match test: subject=CALLER@myhost.test.ex pattern=x -myhost.test.ex in "x"? no (end of list) -address match test: subject=CALLER@myhost.test.ex pattern=y -myhost.test.ex in "y"? no (end of list) -address match test: subject=CALLER@myhost.test.ex pattern=abc@d.e.f + search_open: lsearch "TESTSUITE/aux-fixed/0085.data" + cached open + search_find: file="TESTSUITE/aux-fixed/0085.data" + key="test.ex" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + 0TESTSUITE/aux-fixed/0085.data + End + internal_search_find: file="TESTSUITE/aux-fixed/0085.data" + type=lsearch key="test.ex" opts=NULL + cached data used for lookup of test.ex + in TESTSUITE/aux-fixed/0085.data + lookup yielded: x : y : abc@d.e.f +CALLER@myhost.test.ex in "x : y : abc@d.e.f"? + list element: x + address match test: subject=CALLER@myhost.test.ex pattern=x + myhost.test.ex in "x"? + list element: x + myhost.test.ex in "x"? no (end of list) + list element: y + address match test: subject=CALLER@myhost.test.ex pattern=y + myhost.test.ex in "y"? + list element: y + myhost.test.ex in "y"? no (end of list) + list element: abc@d.e.f + address match test: subject=CALLER@myhost.test.ex pattern=abc@d.e.f CALLER@myhost.test.ex in "x : y : abc@d.e.f"? no (end of list) smart2 router skipped: senders mismatch no more routers @@ -358,19 +466,31 @@ routing x@myhost.test.ex --------> smart1 router <-------- local_part=x domain=myhost.test.ex checking domains +myhost.test.ex in "smart.domain"? + list element: smart.domain myhost.test.ex in "smart.domain"? no (end of list) smart1 router skipped: domains mismatch --------> fail_remote_domains router <-------- local_part=x domain=myhost.test.ex checking domains -myhost.test.ex in "test.ex : myhost.test.ex"? yes (matched "myhost.test.ex") -myhost.test.ex in "! +local_domains"? no (matched "! +local_domains") +myhost.test.ex in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + myhost.test.ex in "test.ex : myhost.test.ex"? + ╎list element: test.ex + ╎list element: myhost.test.ex + ╎myhost.test.ex in "test.ex : myhost.test.ex"? yes (matched "myhost.test.ex") + end sublist local_domains + data from lookup saved for cache for +local_domains: key 'myhost.test.ex' value 'myhost.test.ex' + myhost.test.ex in "! +local_domains"? no (matched "! +local_domains") fail_remote_domains router skipped: domains mismatch --------> smart2 router <-------- local_part=x domain=myhost.test.ex checking domains +myhost.test.ex in "test.ex"? + list element: test.ex myhost.test.ex in "test.ex"? no (end of list) smart2 router skipped: domains mismatch no more routers search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>