Rewrites: fix delivery crash from constant errors_to. Bug 3081
[exim.git] / test / stderr / 0183
index 6e18963e15c6b86543e6265633febd4758ee6d64..36ab7a1b4f74026b72373456c0d1154de191fc5f 100644 (file)
@@ -1,6 +1,6 @@
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
 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
 dropping to exim gid; retaining priv uid
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
@@ -16,25 +16,33 @@ routing userx@test.again.dns
 --------> srv router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
 --------> srv router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
+userx in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' not found in local cache
+ compiled RE '^srv' saved in local cache
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
+userx in "usery:userz"?
+ list element: usery
+ list element: userz
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
+userx in "!userd"?
+ list element: !userd
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@test.again.dns
   domain = test.again.dns
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@test.again.dns
   domain = test.again.dns
-test.again.dns in "*"? yes (matched "*")
+test.again.dns in "*"?
+ list element: *
+ test.again.dns in "*"? yes (matched "*")
 DNS lookup of test.again.dns (MX) using fakens
 DNS lookup of test.again.dns (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of test.again.dns (MX) gave TRY_AGAIN
 test.again.dns in dns_again_means_nonexist? no (option unset)
 returning DNS_AGAIN
 DNS lookup of test.again.dns (MX) gave TRY_AGAIN
 test.again.dns in dns_again_means_nonexist? no (option unset)
 returning DNS_AGAIN
@@ -50,22 +58,32 @@ routing abcd@test.again.dns
 --------> srv router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
 --------> srv router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
+abcd in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
+abcd in "usery:userz"?
+ list element: usery
+ list element: userz
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
+abcd in "!userd"?
+ list element: !userd
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@test.again.dns
   domain = test.again.dns
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@test.again.dns
   domain = test.again.dns
-test.again.dns in "*"? yes (matched "*")
-DNS lookup of test.again.dns-MX: using cached value DNS_AGAIN
+test.again.dns in "*"?
+ list element: *
+ test.again.dns in "*"? yes (matched "*")
+DNS lookup of test.again.dns (MX): using cached value DNS_AGAIN
 lookuphost router: defer for abcd@test.again.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 lookuphost router: defer for abcd@test.again.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -77,34 +95,39 @@ routing abcd@ten-1.test.ex
 --------> srv router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "usery:userz"?
+ list element: usery
+ list element: userz
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "!userd"?
+ list element: !userd
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
-ten-1.test.ex in "*"? yes (matched "*")
+ten-1.test.ex in "*"?
+ list element: *
+ ten-1.test.ex in "*"? yes (matched "*")
 DNS lookup of ten-1.test.ex (MX) using fakens
 DNS lookup of ten-1.test.ex (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000
 ten-1.test.ex (MX resp) DNSSEC
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000
 ten-1.test.ex (MX resp) DNSSEC
+ list element: *
 DNS lookup of ten-1.test.ex (A) using fakens
 DNS lookup of ten-1.test.ex (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
@@ -112,7 +135,7 @@ set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
   errors_to=NULL
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=NULL
 routed by lookuphost router
   envelope to: abcd@ten-1.test.ex
   transport: smtp
 routed by lookuphost router
   envelope to: abcd@ten-1.test.ex
   transport: smtp
@@ -126,27 +149,34 @@ routing usery@test.again.dns
 --------> srv router <--------
 local_part=usery domain=test.again.dns
 checking local_parts
 --------> srv router <--------
 local_part=usery domain=test.again.dns
 checking local_parts
+usery in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 usery in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.again.dns
 checking local_parts
 usery in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.again.dns
 checking local_parts
-usery in "usery:userz"? yes (matched "usery")
+usery in "usery:userz"?
+ list element: usery
+ usery in "usery:userz"? yes (matched "usery")
 calling useryz router
 useryz router called for usery@test.again.dns
   domain = test.again.dns
 route_item = * $domain bydns
 calling useryz router
 useryz router called for usery@test.again.dns
   domain = test.again.dns
 route_item = * $domain bydns
-test.again.dns in "*"? yes (matched "*")
+test.again.dns in "*"?
+ list element: *
+ test.again.dns in "*"? yes (matched "*")
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.again.dns' options = 'bydns'
 set transport smtp
 finding IP address for test.again.dns
 doing DNS lookup
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.again.dns' options = 'bydns'
 set transport smtp
 finding IP address for test.again.dns
 doing DNS lookup
-test.again.dns in "*"? yes (matched "*")
+test.again.dns in "*"?
+ list element: *
+ test.again.dns in "*"? yes (matched "*")
+ list element: *
 DNS lookup of test.again.dns (A) using fakens
 DNS lookup of test.again.dns (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of test.again.dns (A) gave TRY_AGAIN
 test.again.dns in dns_again_means_nonexist? no (option unset)
 returning DNS_AGAIN
 DNS lookup of test.again.dns (A) gave TRY_AGAIN
 test.again.dns in dns_again_means_nonexist? no (option unset)
 returning DNS_AGAIN
@@ -162,23 +192,34 @@ routing userz@test.again.dns
 --------> srv router <--------
 local_part=userz domain=test.again.dns
 checking local_parts
 --------> srv router <--------
 local_part=userz domain=test.again.dns
 checking local_parts
+userz in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 userz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.again.dns
 checking local_parts
 userz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.again.dns
 checking local_parts
-userz in "usery:userz"? yes (matched "userz")
+userz in "usery:userz"?
+ list element: usery
+ list element: userz
+ userz in "usery:userz"? yes (matched "userz")
 calling useryz router
 useryz router called for userz@test.again.dns
   domain = test.again.dns
 route_item = * $domain bydns
 calling useryz router
 useryz router called for userz@test.again.dns
   domain = test.again.dns
 route_item = * $domain bydns
-test.again.dns in "*"? yes (matched "*")
+test.again.dns in "*"?
+ list element: *
+ test.again.dns in "*"? yes (matched "*")
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.again.dns' options = 'bydns'
 finding IP address for test.again.dns
 doing DNS lookup
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.again.dns' options = 'bydns'
 finding IP address for test.again.dns
 doing DNS lookup
-test.again.dns in "*"? yes (matched "*")
-DNS lookup of test.again.dns-A: using cached value DNS_AGAIN
+test.again.dns in "*"?
+ list element: *
+ test.again.dns in "*"? yes (matched "*")
+ list element: *
+DNS lookup of test.again.dns (A): using cached value DNS_AGAIN
 useryz router: defer for userz@test.again.dns
   message: host lookup for test.again.dns did not complete (DNS timeout?)
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 useryz router: defer for userz@test.again.dns
   message: host lookup for test.again.dns did not complete (DNS timeout?)
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -190,42 +231,50 @@ routing xyz@ten-1.test.ex
 --------> srv router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 xyz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 xyz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "usery:userz"?
+ list element: usery
+ list element: userz
 xyz in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 xyz in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "!userd"?
+ list element: !userd
 xyz in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
 xyz in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
-ten-1.test.ex in "*"? yes (matched "*")
-DNS lookup of ten-1.test.ex-MX: using cached value DNS_NODATA
+ten-1.test.ex in "*"?
+ list element: *
+ ten-1.test.ex in "*"? yes (matched "*")
+DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
+ list element: *
 DNS lookup of ten-1.test.ex (A) using fakens
 DNS lookup of ten-1.test.ex (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=NULL
 routed by lookuphost router
   envelope to: xyz@ten-1.test.ex
   transport: smtp
   host ten-1.test.ex [V4NET.0.0.1]
 search_tidyup called
 routed by lookuphost router
   envelope to: xyz@ten-1.test.ex
   transport: smtp
   host ten-1.test.ex [V4NET.0.0.1]
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
 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
 dropping to exim gid; retaining priv uid
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
@@ -241,25 +290,33 @@ routing userx@test.fail.dns
 --------> srv router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
 --------> srv router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
+userx in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' not found in local cache
+ compiled RE '^srv' saved in local cache
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
+userx in "usery:userz"?
+ list element: usery
+ list element: userz
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
+userx in "!userd"?
+ list element: !userd
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@test.fail.dns
   domain = test.fail.dns
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@test.fail.dns
   domain = test.fail.dns
-test.fail.dns in "*"? yes (matched "*")
+test.fail.dns in "*"?
+ list element: *
+ test.fail.dns in "*"? yes (matched "*")
 DNS lookup of test.fail.dns (MX) using fakens
 DNS lookup of test.fail.dns (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of test.fail.dns (MX) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-MX-xxxx, ttl -1
 DNS lookup of test.fail.dns (MX) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-MX-xxxx, ttl -1
@@ -274,22 +331,32 @@ routing abcd@test.fail.dns
 --------> srv router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
 --------> srv router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
+abcd in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
+abcd in "usery:userz"?
+ list element: usery
+ list element: userz
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
+abcd in "!userd"?
+ list element: !userd
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@test.fail.dns
   domain = test.fail.dns
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@test.fail.dns
   domain = test.fail.dns
-test.fail.dns in "*"? yes (matched "*")
-DNS lookup of test.fail.dns-MX: using cached value DNS_FAIL
+test.fail.dns in "*"?
+ list element: *
+ test.fail.dns in "*"? yes (matched "*")
+DNS lookup of test.fail.dns (MX): using cached value DNS_FAIL
 lookuphost router: defer for abcd@test.fail.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 lookuphost router: defer for abcd@test.fail.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -301,34 +368,39 @@ routing abcd@ten-1.test.ex
 --------> srv router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "usery:userz"?
+ list element: usery
+ list element: userz
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "!userd"?
+ list element: !userd
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
-ten-1.test.ex in "*"? yes (matched "*")
+ten-1.test.ex in "*"?
+ list element: *
+ ten-1.test.ex in "*"? yes (matched "*")
 DNS lookup of ten-1.test.ex (MX) using fakens
 DNS lookup of ten-1.test.ex (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000
 ten-1.test.ex (MX resp) DNSSEC
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000
 ten-1.test.ex (MX resp) DNSSEC
+ list element: *
 DNS lookup of ten-1.test.ex (A) using fakens
 DNS lookup of ten-1.test.ex (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
@@ -336,7 +408,7 @@ set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
   errors_to=NULL
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=NULL
 routed by lookuphost router
   envelope to: abcd@ten-1.test.ex
   transport: smtp
 routed by lookuphost router
   envelope to: abcd@ten-1.test.ex
   transport: smtp
@@ -350,27 +422,34 @@ routing usery@test.fail.dns
 --------> srv router <--------
 local_part=usery domain=test.fail.dns
 checking local_parts
 --------> srv router <--------
 local_part=usery domain=test.fail.dns
 checking local_parts
+usery in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 usery in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.fail.dns
 checking local_parts
 usery in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.fail.dns
 checking local_parts
-usery in "usery:userz"? yes (matched "usery")
+usery in "usery:userz"?
+ list element: usery
+ usery in "usery:userz"? yes (matched "usery")
 calling useryz router
 useryz router called for usery@test.fail.dns
   domain = test.fail.dns
 route_item = * $domain bydns
 calling useryz router
 useryz router called for usery@test.fail.dns
   domain = test.fail.dns
 route_item = * $domain bydns
-test.fail.dns in "*"? yes (matched "*")
+test.fail.dns in "*"?
+ list element: *
+ test.fail.dns in "*"? yes (matched "*")
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.fail.dns' options = 'bydns'
 set transport smtp
 finding IP address for test.fail.dns
 doing DNS lookup
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.fail.dns' options = 'bydns'
 set transport smtp
 finding IP address for test.fail.dns
 doing DNS lookup
-test.fail.dns in "*"? yes (matched "*")
+test.fail.dns in "*"?
+ list element: *
+ test.fail.dns in "*"? yes (matched "*")
+ list element: *
 DNS lookup of test.fail.dns (A) using fakens
 DNS lookup of test.fail.dns (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of test.fail.dns (A) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-A-xxxx, ttl -1
 DNS lookup of test.fail.dns (A) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-A-xxxx, ttl -1
@@ -385,23 +464,34 @@ routing userz@test.fail.dns
 --------> srv router <--------
 local_part=userz domain=test.fail.dns
 checking local_parts
 --------> srv router <--------
 local_part=userz domain=test.fail.dns
 checking local_parts
+userz in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 userz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.fail.dns
 checking local_parts
 userz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.fail.dns
 checking local_parts
-userz in "usery:userz"? yes (matched "userz")
+userz in "usery:userz"?
+ list element: usery
+ list element: userz
+ userz in "usery:userz"? yes (matched "userz")
 calling useryz router
 useryz router called for userz@test.fail.dns
   domain = test.fail.dns
 route_item = * $domain bydns
 calling useryz router
 useryz router called for userz@test.fail.dns
   domain = test.fail.dns
 route_item = * $domain bydns
-test.fail.dns in "*"? yes (matched "*")
+test.fail.dns in "*"?
+ list element: *
+ test.fail.dns in "*"? yes (matched "*")
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.fail.dns' options = 'bydns'
 finding IP address for test.fail.dns
 doing DNS lookup
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'test.fail.dns' options = 'bydns'
 finding IP address for test.fail.dns
 doing DNS lookup
-test.fail.dns in "*"? yes (matched "*")
-DNS lookup of test.fail.dns-A: using cached value DNS_FAIL
+test.fail.dns in "*"?
+ list element: *
+ test.fail.dns in "*"? yes (matched "*")
+ list element: *
+DNS lookup of test.fail.dns (A): using cached value DNS_FAIL
 useryz router: defer for userz@test.fail.dns
   message: host lookup for test.fail.dns did not complete (DNS timeout?)
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 useryz router: defer for userz@test.fail.dns
   message: host lookup for test.fail.dns did not complete (DNS timeout?)
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -413,42 +503,50 @@ routing xyz@ten-1.test.ex
 --------> srv router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 xyz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 xyz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "usery:userz"?
+ list element: usery
+ list element: userz
 xyz in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 xyz in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "!userd"?
+ list element: !userd
 xyz in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
 xyz in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
-ten-1.test.ex in "*"? yes (matched "*")
-DNS lookup of ten-1.test.ex-MX: using cached value DNS_NODATA
+ten-1.test.ex in "*"?
+ list element: *
+ ten-1.test.ex in "*"? yes (matched "*")
+DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
+ list element: *
 DNS lookup of ten-1.test.ex (A) using fakens
 DNS lookup of ten-1.test.ex (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=NULL
 routed by lookuphost router
   envelope to: xyz@ten-1.test.ex
   transport: smtp
   host ten-1.test.ex [V4NET.0.0.1]
 search_tidyup called
 routed by lookuphost router
   envelope to: xyz@ten-1.test.ex
   transport: smtp
   host ten-1.test.ex [V4NET.0.0.1]
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
-  uid=uuuu gid=CALLER_GID pid=pppp
+  uid=uuuu gid=CALLER_GID pid=p1236
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
@@ -464,25 +562,33 @@ routing userx@nonexist.test.ex
 --------> srv router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
+userx in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' not found in local cache
+ compiled RE '^srv' saved in local cache
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
+userx in "usery:userz"?
+ list element: usery
+ list element: userz
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
+userx in "!userd"?
+ list element: !userd
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@nonexist.test.ex
   domain = nonexist.test.ex
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@nonexist.test.ex
   domain = nonexist.test.ex
-nonexist.test.ex in "*"? yes (matched "*")
+nonexist.test.ex in "*"?
+ list element: *
+ nonexist.test.ex in "*"? yes (matched "*")
 DNS lookup of nonexist.test.ex (MX) using fakens
 DNS lookup of nonexist.test.ex (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of nonexist.test.ex (MX) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(MX) response length as 65535
 DNS lookup of nonexist.test.ex (MX) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(MX) response length as 65535
@@ -499,22 +605,32 @@ routing abcd@nonexist.test.ex
 --------> srv router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
+abcd in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
+abcd in "usery:userz"?
+ list element: usery
+ list element: userz
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
+abcd in "!userd"?
+ list element: !userd
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@nonexist.test.ex
   domain = nonexist.test.ex
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@nonexist.test.ex
   domain = nonexist.test.ex
-nonexist.test.ex in "*"? yes (matched "*")
-DNS lookup of nonexist.test.ex-MX: using cached value DNS_NOMATCH
+nonexist.test.ex in "*"?
+ list element: *
+ nonexist.test.ex in "*"? yes (matched "*")
+DNS lookup of nonexist.test.ex (MX): using cached value DNS_NOMATCH
 lookuphost router declined for abcd@nonexist.test.ex
 "more" is false: skipping remaining routers
 no more routers
 lookuphost router declined for abcd@nonexist.test.ex
 "more" is false: skipping remaining routers
 no more routers
@@ -527,34 +643,39 @@ routing abcd@ten-1.test.ex
 --------> srv router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 abcd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "usery:userz"?
+ list element: usery
+ list element: userz
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 abcd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
+abcd in "!userd"?
+ list element: !userd
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
 abcd in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
-ten-1.test.ex in "*"? yes (matched "*")
+ten-1.test.ex in "*"?
+ list element: *
+ ten-1.test.ex in "*"? yes (matched "*")
 DNS lookup of ten-1.test.ex (MX) using fakens
 DNS lookup of ten-1.test.ex (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000
 ten-1.test.ex (MX resp) DNSSEC
 DNS lookup of ten-1.test.ex (MX) gave NO_DATA
 returning DNS_NODATA
 faking res_search(MX) response length as 65535
  writing neg-cache entry for ten-1.test.ex-MX-xxxx, ttl 3000
 ten-1.test.ex (MX resp) DNSSEC
+ list element: *
 DNS lookup of ten-1.test.ex (A) using fakens
 DNS lookup of ten-1.test.ex (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
@@ -562,7 +683,7 @@ set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
   errors_to=NULL
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=NULL
 routed by lookuphost router
   envelope to: abcd@ten-1.test.ex
   transport: smtp
 routed by lookuphost router
   envelope to: abcd@ten-1.test.ex
   transport: smtp
@@ -576,27 +697,34 @@ routing usery@nonexist.test.ex
 --------> srv router <--------
 local_part=usery domain=nonexist.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=usery domain=nonexist.test.ex
 checking local_parts
+usery in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 usery in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=nonexist.test.ex
 checking local_parts
 usery in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=nonexist.test.ex
 checking local_parts
-usery in "usery:userz"? yes (matched "usery")
+usery in "usery:userz"?
+ list element: usery
+ usery in "usery:userz"? yes (matched "usery")
 calling useryz router
 useryz router called for usery@nonexist.test.ex
   domain = nonexist.test.ex
 route_item = * $domain bydns
 calling useryz router
 useryz router called for usery@nonexist.test.ex
   domain = nonexist.test.ex
 route_item = * $domain bydns
-nonexist.test.ex in "*"? yes (matched "*")
+nonexist.test.ex in "*"?
+ list element: *
+ nonexist.test.ex in "*"? yes (matched "*")
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
 set transport smtp
 finding IP address for nonexist.test.ex
 doing DNS lookup
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
 set transport smtp
 finding IP address for nonexist.test.ex
 doing DNS lookup
-nonexist.test.ex in "*"? yes (matched "*")
+nonexist.test.ex in "*"?
+ list element: *
+ nonexist.test.ex in "*"? yes (matched "*")
+ list element: *
 DNS lookup of nonexist.test.ex (A) using fakens
 DNS lookup of nonexist.test.ex (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of nonexist.test.ex (A) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(A) response length as 65535
 DNS lookup of nonexist.test.ex (A) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(A) response length as 65535
@@ -612,23 +740,34 @@ routing userz@nonexist.test.ex
 --------> srv router <--------
 local_part=userz domain=nonexist.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=userz domain=nonexist.test.ex
 checking local_parts
+userz in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 userz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=nonexist.test.ex
 checking local_parts
 userz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=nonexist.test.ex
 checking local_parts
-userz in "usery:userz"? yes (matched "userz")
+userz in "usery:userz"?
+ list element: usery
+ list element: userz
+ userz in "usery:userz"? yes (matched "userz")
 calling useryz router
 useryz router called for userz@nonexist.test.ex
   domain = nonexist.test.ex
 route_item = * $domain bydns
 calling useryz router
 useryz router called for userz@nonexist.test.ex
   domain = nonexist.test.ex
 route_item = * $domain bydns
-nonexist.test.ex in "*"? yes (matched "*")
+nonexist.test.ex in "*"?
+ list element: *
+ nonexist.test.ex in "*"? yes (matched "*")
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
 finding IP address for nonexist.test.ex
 doing DNS lookup
 original list of hosts = '$domain' options = 'bydns'
 expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
 finding IP address for nonexist.test.ex
 doing DNS lookup
-nonexist.test.ex in "*"? yes (matched "*")
-DNS lookup of nonexist.test.ex-A: using cached value DNS_NOMATCH
+nonexist.test.ex in "*"?
+ list element: *
+ nonexist.test.ex in "*"? yes (matched "*")
+ list element: *
+DNS lookup of nonexist.test.ex (A): using cached value DNS_NOMATCH
 useryz router: defer for userz@nonexist.test.ex
   message: lookup of host "nonexist.test.ex" failed in useryz router
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 useryz router: defer for userz@nonexist.test.ex
   message: lookup of host "nonexist.test.ex" failed in useryz router
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -640,42 +779,50 @@ routing xyz@ten-1.test.ex
 --------> srv router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 --------> srv router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 xyz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 xyz in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "usery:userz"?
+ list element: usery
+ list element: userz
 xyz in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 xyz in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
+xyz in "!userd"?
+ list element: !userd
 xyz in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
 xyz in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
-ten-1.test.ex in "*"? yes (matched "*")
-DNS lookup of ten-1.test.ex-MX: using cached value DNS_NODATA
+ten-1.test.ex in "*"?
+ list element: *
+ ten-1.test.ex in "*"? yes (matched "*")
+DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
+ list element: *
 DNS lookup of ten-1.test.ex (A) using fakens
 DNS lookup of ten-1.test.ex (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
 DNS lookup of ten-1.test.ex (A) succeeded
 fully qualified name = ten-1.test.ex
 ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=NULL
 routed by lookuphost router
   envelope to: xyz@ten-1.test.ex
   transport: smtp
   host ten-1.test.ex [V4NET.0.0.1]
 search_tidyup called
 routed by lookuphost router
   envelope to: xyz@ten-1.test.ex
   transport: smtp
   host ten-1.test.ex [V4NET.0.0.1]
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
-  uid=uuuu gid=CALLER_GID pid=pppp
+  uid=uuuu gid=CALLER_GID pid=p1237
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
@@ -691,19 +838,24 @@ routing srv@test.again.dns
 --------> srv router <--------
 local_part=srv domain=test.again.dns
 checking local_parts
 --------> srv router <--------
 local_part=srv domain=test.again.dns
 checking local_parts
-srv in "^srv"? yes (matched "^srv")
+srv in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' not found in local cache
+ compiled RE '^srv' saved in local cache
+ srv in "^srv"? yes (matched "^srv")
 calling srv router
 srv router called for srv@test.again.dns
   domain = test.again.dns
 calling srv router
 srv router called for srv@test.again.dns
   domain = test.again.dns
-test.again.dns in "*"? yes (matched "*")
+test.again.dns in "*"?
+ list element: *
+ test.again.dns in "*"? yes (matched "*")
 DNS lookup of _smtp._tcp.test.again.dns (SRV) using fakens
 DNS lookup of _smtp._tcp.test.again.dns (SRV) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of _smtp._tcp.test.again.dns (SRV) gave TRY_AGAIN
 _smtp._tcp.test.again.dns in dns_again_means_nonexist? no (option unset)
 returning DNS_AGAIN
  writing neg-cache entry for _smtp._tcp.test.again.dns-SRV-xxxx, ttl -1
 DNS lookup of _smtp._tcp.test.again.dns (SRV) gave TRY_AGAIN
 _smtp._tcp.test.again.dns in dns_again_means_nonexist? no (option unset)
 returning DNS_AGAIN
  writing neg-cache entry for _smtp._tcp.test.again.dns-SRV-xxxx, ttl -1
+test.again.dns in "test.fail.dns"?
+ list element: test.fail.dns
 test.again.dns in "test.fail.dns"? no (end of list)
 srv router: defer for srv@test.again.dns
   message: host lookup did not complete
 test.again.dns in "test.fail.dns"? no (end of list)
 srv router: defer for srv@test.again.dns
   message: host lookup did not complete
@@ -716,43 +868,44 @@ routing srv@test.fail.dns
 --------> srv router <--------
 local_part=srv domain=test.fail.dns
 checking local_parts
 --------> srv router <--------
 local_part=srv domain=test.fail.dns
 checking local_parts
-srv in "^srv"? yes (matched "^srv")
+srv in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
+ srv in "^srv"? yes (matched "^srv")
 calling srv router
 srv router called for srv@test.fail.dns
   domain = test.fail.dns
 calling srv router
 srv router called for srv@test.fail.dns
   domain = test.fail.dns
-test.fail.dns in "*"? yes (matched "*")
+test.fail.dns in "*"?
+ list element: *
+ test.fail.dns in "*"? yes (matched "*")
 DNS lookup of _smtp._tcp.test.fail.dns (SRV) using fakens
 DNS lookup of _smtp._tcp.test.fail.dns (SRV) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of _smtp._tcp.test.fail.dns (SRV) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for _smtp._tcp.test.fail.dns-SRV-xxxx, ttl -1
 DNS lookup of _smtp._tcp.test.fail.dns (SRV) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for _smtp._tcp.test.fail.dns-SRV-xxxx, ttl -1
-test.fail.dns in "test.fail.dns"? yes (matched "test.fail.dns")
+test.fail.dns in "test.fail.dns"?
+ list element: test.fail.dns
+ test.fail.dns in "test.fail.dns"? yes (matched "test.fail.dns")
 DNS_FAIL treated as DNS_NODATA (domain in srv_fail_domains)
 DNS lookup of test.fail.dns (MX) using fakens
 DNS_FAIL treated as DNS_NODATA (domain in srv_fail_domains)
 DNS lookup of test.fail.dns (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of test.fail.dns (MX) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-MX-xxxx, ttl -1
 DNS lookup of test.fail.dns (MX) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-MX-xxxx, ttl -1
-test.fail.dns in "test.fail.dns"? yes (matched "test.fail.dns")
+test.fail.dns in "test.fail.dns"?
+ list element: test.fail.dns
+ test.fail.dns in "test.fail.dns"? yes (matched "test.fail.dns")
 DNS_FAIL treated as DNS_NODATA (domain in mx_fail_domains)
 DNS_FAIL treated as DNS_NODATA (domain in mx_fail_domains)
+ list element: *
 DNS lookup of test.fail.dns (A) using fakens
 DNS lookup of test.fail.dns (A) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of test.fail.dns (A) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-A-xxxx, ttl -1
 srv router: defer for srv@test.fail.dns
   message: host lookup did not complete
 search_tidyup called
 DNS lookup of test.fail.dns (A) gave NO_RECOVERY
 returning DNS_FAIL
  writing neg-cache entry for test.fail.dns-A-xxxx, ttl -1
 srv router: defer for srv@test.fail.dns
   message: host lookup did not complete
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
-  uid=uuuu gid=CALLER_GID pid=pppp
+  uid=uuuu gid=CALLER_GID pid=p1238
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
 configuration file is TESTSUITE/test-config
 admin user
 dropping to exim gid; retaining priv uid
@@ -768,25 +921,33 @@ routing userx@nonexist.example.com
 --------> srv router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
 --------> srv router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
+userx in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' not found in local cache
+ compiled RE '^srv' saved in local cache
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
 userx in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
+userx in "usery:userz"?
+ list element: usery
+ list element: userz
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
 userx in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
+userx in "!userd"?
+ list element: !userd
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@nonexist.example.com
   domain = nonexist.example.com
 userx in "!userd"? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@nonexist.example.com
   domain = nonexist.example.com
-nonexist.example.com in "*"? yes (matched "*")
+nonexist.example.com in "*"?
+ list element: *
+ nonexist.example.com in "*"? yes (matched "*")
 DNS lookup of nonexist.example.com (MX) using fakens
 DNS lookup of nonexist.example.com (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(MX) response length as 65535
 DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(MX) response length as 65535
@@ -803,17 +964,25 @@ routing userd@nonexist.example.com
 --------> srv router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
 --------> srv router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
+userd in "^srv"?
+ list element: ^srv
+ compiled caseless RE '^srv' found in local cache
 userd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
 userd in "^srv"? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
+userd in "usery:userz"?
+ list element: usery
+ list element: userz
 userd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
 userd in "usery:userz"? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
-userd in "!userd"? no (matched "!userd")
+userd in "!userd"?
+ list element: !userd
+ userd in "!userd"? no (matched "!userd")
 lookuphost router skipped: local_parts mismatch
 --------> delay router <--------
 local_part=userd domain=nonexist.example.com
 lookuphost router skipped: local_parts mismatch
 --------> delay router <--------
 local_part=userd domain=nonexist.example.com
@@ -828,12 +997,11 @@ checking "condition" "${acl {delay}}"...
 calling delay router
 delay router called for userd@nonexist.example.com
   domain = nonexist.example.com
 calling delay router
 delay router called for userd@nonexist.example.com
   domain = nonexist.example.com
-nonexist.example.com in "*"? yes (matched "*")
-DNS lookup of nonexist.example.com-MX: cached value DNS_NOMATCH past valid time
+nonexist.example.com in "*"?
+ list element: *
+ nonexist.example.com in "*"? yes (matched "*")
+DNS lookup of nonexist.example.com (MX): cached value DNS_NOMATCH past valid time
 DNS lookup of nonexist.example.com (MX) using fakens
 DNS lookup of nonexist.example.com (MX) using fakens
-fresh-exec forking for fakens-search
-postfork: fakens-search
-fresh-exec forked for fakens-search: npppp
 DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(MX) response length as 65535
 DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 faking res_search(MX) response length as 65535
@@ -842,4 +1010,4 @@ delay router declined for userd@nonexist.example.com
 "more" is false: skipping remaining routers
 no more routers
 search_tidyup called
 "more" is false: skipping remaining routers
 no more routers
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>