Taint: reject or log more tainted list metadata elements
[exim.git] / test / stderr / 0183
index 36ab7a1b4f74026b72373456c0d1154de191fc5f..cbb0020d959b99d2ba86086a3e4c69bae534ea8c 100644 (file)
@@ -1,4 +1,5 @@
 Exim version x.yz ....
 Exim version x.yz ....
+Hints DB:
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1234
 configuration file is TESTSUITE/test-config
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1234
 configuration file is TESTSUITE/test-config
@@ -16,37 +17,42 @@ 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"?
+userx in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' not found in local cache
  compiled RE '^srv' saved in local cache
  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)
+userx in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.again.dns
 checking local_parts
-userx in "!userd"?
+userx in local_parts?
  list element: !userd
  list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@test.again.dns
   domain = test.again.dns
 calling lookuphost router
 lookuphost router called for userx@test.again.dns
   domain = test.again.dns
-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) gave TRY_AGAIN
-test.again.dns in dns_again_means_nonexist? no (option unset)
-returning DNS_AGAIN
- writing neg-cache entry for test.again.dns-MX-xxxx, ttl -1
+main lookup for domain
+ check dnssec require list
+  test.again.dns in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  test.again.dns in dnssec_request_domains?
+   list element: *
+   test.again.dns in dnssec_request_domains? yes (matched "*")
+ DNS lookup of test.again.dns (MX) using fakens
+ DNS lookup of test.again.dns (MX) gave TRY_AGAIN
+ test.again.dns in dns_again_means_nonexist? no (option unset)
+ returning DNS_AGAIN
+  writing neg-cache entry for test.again.dns-MX-xxxx, ttl -1
+ test.again.dns not in empty list (option unset? cannot trace name)
 lookuphost router: defer for userx@test.again.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 lookuphost router: defer for userx@test.again.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -58,32 +64,37 @@ 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"?
+abcd in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.again.dns
 checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
  list element: !userd
  list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@test.again.dns
   domain = test.again.dns
 calling lookuphost router
 lookuphost router called for abcd@test.again.dns
   domain = test.again.dns
-test.again.dns in "*"?
- list element: *
- test.again.dns in "*"? yes (matched "*")
-DNS lookup of test.again.dns (MX): using cached value DNS_AGAIN
+main lookup for domain
+ check dnssec require list
+  test.again.dns in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  test.again.dns in dnssec_request_domains?
+   list element: *
+   test.again.dns in dnssec_request_domains? yes (matched "*")
+ DNS lookup of test.again.dns (MX): using cached value DNS_AGAIN
+ test.again.dns not in empty list (option unset? cannot trace name)
 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
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -95,42 +106,45 @@ 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"?
+abcd in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
  list element: !userd
  list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
-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) 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) succeeded
-fully qualified name = ten-1.test.ex
-ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
+main lookup for domain
+ check dnssec require list
+  ten-1.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  ten-1.test.ex in dnssec_request_domains?
+   list element: *
+   ten-1.test.ex in dnssec_request_domains? yes (matched "*")
+ DNS lookup of ten-1.test.ex (MX) using fakens
+ 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 (A) using fakens
+ 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 
 set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
 set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
@@ -149,17 +163,17 @@ 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"?
+usery in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-usery in "^srv"? no (end of list)
+usery in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.again.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.again.dns
 checking local_parts
-usery in "usery:userz"?
+usery in local_parts?
  list element: usery
  list element: usery
- usery in "usery:userz"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
 calling useryz router
 useryz router called for usery@test.again.dns
   domain = test.again.dns
 calling useryz router
 useryz router called for usery@test.again.dns
   domain = test.again.dns
@@ -172,10 +186,12 @@ expanded list of hosts = 'test.again.dns' options = 'bydns'
 set transport smtp
 finding IP address for test.again.dns
 doing DNS lookup
 set transport smtp
 finding IP address for test.again.dns
 doing DNS lookup
-test.again.dns in "*"?
- list element: *
- test.again.dns in "*"? yes (matched "*")
- list element: *
+check dnssec require list
+ test.again.dns in dnssec_require_domains? no (option unset)
+check dnssec request list
+ test.again.dns in dnssec_request_domains?
+  list element: *
+  test.again.dns in dnssec_request_domains? yes (matched "*")
 DNS lookup of test.again.dns (A) using fakens
 DNS lookup of test.again.dns (A) gave TRY_AGAIN
 test.again.dns in dns_again_means_nonexist? no (option unset)
 DNS lookup of test.again.dns (A) using fakens
 DNS lookup of test.again.dns (A) gave TRY_AGAIN
 test.again.dns in dns_again_means_nonexist? no (option unset)
@@ -192,18 +208,18 @@ 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"?
+userz in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-userz in "^srv"? no (end of list)
+userz in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.again.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.again.dns
 checking local_parts
-userz in "usery:userz"?
+userz in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
- userz in "usery:userz"? yes (matched "userz")
+ userz in local_parts? yes (matched "userz")
 calling useryz router
 useryz router called for userz@test.again.dns
   domain = test.again.dns
 calling useryz router
 useryz router called for userz@test.again.dns
   domain = test.again.dns
@@ -215,10 +231,12 @@ 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
 expanded list of hosts = 'test.again.dns' options = 'bydns'
 finding IP address for test.again.dns
 doing DNS lookup
-test.again.dns in "*"?
- list element: *
- test.again.dns in "*"? yes (matched "*")
- list element: *
+check dnssec require list
+ test.again.dns in dnssec_require_domains? no (option unset)
+check dnssec request list
+ test.again.dns in dnssec_request_domains?
+  list element: *
+  test.again.dns in dnssec_request_domains? yes (matched "*")
 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?)
 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?)
@@ -231,37 +249,40 @@ 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"?
+xyz in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-xyz in "^srv"? no (end of list)
+xyz in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
-xyz in "usery:userz"?
+xyz in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-xyz in "usery:userz"? no (end of list)
+xyz in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
-xyz in "!userd"?
+xyz in local_parts?
  list element: !userd
  list element: !userd
-xyz in "!userd"? yes (end of list)
+xyz in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
-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) succeeded
-fully qualified name = ten-1.test.ex
-ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
+main lookup for domain
+ check dnssec require list
+  ten-1.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  ten-1.test.ex in dnssec_request_domains?
+   list element: *
+   ten-1.test.ex in dnssec_request_domains? yes (matched "*")
+ DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
+ DNS lookup of ten-1.test.ex (A) using fakens
+ 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
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
@@ -273,6 +294,7 @@ routed by lookuphost router
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
+Hints DB:
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1235
 configuration file is TESTSUITE/test-config
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1235
 configuration file is TESTSUITE/test-config
@@ -290,36 +312,41 @@ 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"?
+userx in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' not found in local cache
  compiled RE '^srv' saved in local cache
  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)
+userx in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=test.fail.dns
 checking local_parts
-userx in "!userd"?
+userx in local_parts?
  list element: !userd
  list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@test.fail.dns
   domain = test.fail.dns
 calling lookuphost router
 lookuphost router called for userx@test.fail.dns
   domain = test.fail.dns
-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) gave NO_RECOVERY
-returning DNS_FAIL
- writing neg-cache entry for test.fail.dns-MX-xxxx, ttl -1
+main lookup for domain
+ check dnssec require list
+  test.fail.dns in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  test.fail.dns in dnssec_request_domains?
+   list element: *
+   test.fail.dns in dnssec_request_domains? yes (matched "*")
+ DNS lookup of test.fail.dns (MX) using fakens
+ 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 not in empty list (option unset? cannot trace name)
 lookuphost router: defer for userx@test.fail.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 lookuphost router: defer for userx@test.fail.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -331,32 +358,37 @@ 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"?
+abcd in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=test.fail.dns
 checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
  list element: !userd
  list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@test.fail.dns
   domain = test.fail.dns
 calling lookuphost router
 lookuphost router called for abcd@test.fail.dns
   domain = test.fail.dns
-test.fail.dns in "*"?
- list element: *
- test.fail.dns in "*"? yes (matched "*")
-DNS lookup of test.fail.dns (MX): using cached value DNS_FAIL
+main lookup for domain
+ check dnssec require list
+  test.fail.dns in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  test.fail.dns in dnssec_request_domains?
+   list element: *
+   test.fail.dns in dnssec_request_domains? yes (matched "*")
+ DNS lookup of test.fail.dns (MX): using cached value DNS_FAIL
+ test.fail.dns not in empty list (option unset? cannot trace name)
 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
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -368,42 +400,45 @@ 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"?
+abcd in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
  list element: !userd
  list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
-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) 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) succeeded
-fully qualified name = ten-1.test.ex
-ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
+main lookup for domain
+ check dnssec require list
+  ten-1.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  ten-1.test.ex in dnssec_request_domains?
+   list element: *
+   ten-1.test.ex in dnssec_request_domains? yes (matched "*")
+ DNS lookup of ten-1.test.ex (MX) using fakens
+ 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 (A) using fakens
+ 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 
 set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
 set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
@@ -422,17 +457,17 @@ 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"?
+usery in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-usery in "^srv"? no (end of list)
+usery in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.fail.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=test.fail.dns
 checking local_parts
-usery in "usery:userz"?
+usery in local_parts?
  list element: usery
  list element: usery
- usery in "usery:userz"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
 calling useryz router
 useryz router called for usery@test.fail.dns
   domain = test.fail.dns
 calling useryz router
 useryz router called for usery@test.fail.dns
   domain = test.fail.dns
@@ -445,10 +480,12 @@ expanded list of hosts = 'test.fail.dns' options = 'bydns'
 set transport smtp
 finding IP address for test.fail.dns
 doing DNS lookup
 set transport smtp
 finding IP address for test.fail.dns
 doing DNS lookup
-test.fail.dns in "*"?
- list element: *
- test.fail.dns in "*"? yes (matched "*")
- list element: *
+check dnssec require list
+ test.fail.dns in dnssec_require_domains? no (option unset)
+check dnssec request list
+ test.fail.dns in dnssec_request_domains?
+  list element: *
+  test.fail.dns in dnssec_request_domains? yes (matched "*")
 DNS lookup of test.fail.dns (A) using fakens
 DNS lookup of test.fail.dns (A) gave NO_RECOVERY
 returning DNS_FAIL
 DNS lookup of test.fail.dns (A) using fakens
 DNS lookup of test.fail.dns (A) gave NO_RECOVERY
 returning DNS_FAIL
@@ -464,18 +501,18 @@ 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"?
+userz in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-userz in "^srv"? no (end of list)
+userz in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.fail.dns
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=test.fail.dns
 checking local_parts
-userz in "usery:userz"?
+userz in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
- userz in "usery:userz"? yes (matched "userz")
+ userz in local_parts? yes (matched "userz")
 calling useryz router
 useryz router called for userz@test.fail.dns
   domain = test.fail.dns
 calling useryz router
 useryz router called for userz@test.fail.dns
   domain = test.fail.dns
@@ -487,10 +524,12 @@ 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
 expanded list of hosts = 'test.fail.dns' options = 'bydns'
 finding IP address for test.fail.dns
 doing DNS lookup
-test.fail.dns in "*"?
- list element: *
- test.fail.dns in "*"? yes (matched "*")
- list element: *
+check dnssec require list
+ test.fail.dns in dnssec_require_domains? no (option unset)
+check dnssec request list
+ test.fail.dns in dnssec_request_domains?
+  list element: *
+  test.fail.dns in dnssec_request_domains? yes (matched "*")
 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?)
 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?)
@@ -503,37 +542,40 @@ 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"?
+xyz in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-xyz in "^srv"? no (end of list)
+xyz in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
-xyz in "usery:userz"?
+xyz in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-xyz in "usery:userz"? no (end of list)
+xyz in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
-xyz in "!userd"?
+xyz in local_parts?
  list element: !userd
  list element: !userd
-xyz in "!userd"? yes (end of list)
+xyz in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
-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) succeeded
-fully qualified name = ten-1.test.ex
-ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
+main lookup for domain
+ check dnssec require list
+  ten-1.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  ten-1.test.ex in dnssec_request_domains?
+   list element: *
+   ten-1.test.ex in dnssec_request_domains? yes (matched "*")
+ DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
+ DNS lookup of ten-1.test.ex (A) using fakens
+ 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
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
@@ -545,6 +587,7 @@ routed by lookuphost router
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
+Hints DB:
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1236
 configuration file is TESTSUITE/test-config
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1236
 configuration file is TESTSUITE/test-config
@@ -562,37 +605,41 @@ 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"?
+userx in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' not found in local cache
  compiled RE '^srv' saved in local cache
  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)
+userx in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.test.ex
 checking local_parts
-userx in "!userd"?
+userx in local_parts?
  list element: !userd
  list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@nonexist.test.ex
   domain = nonexist.test.ex
 calling lookuphost router
 lookuphost router called for userx@nonexist.test.ex
   domain = nonexist.test.ex
-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) gave HOST_NOT_FOUND
-returning DNS_NOMATCH
-faking res_search(MX) response length as 65535
- writing neg-cache entry for nonexist.test.ex-MX-xxxx, ttl 3000
+main lookup for domain
+ check dnssec require list
+  nonexist.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  nonexist.test.ex in dnssec_request_domains?
+   list element: *
+   nonexist.test.ex in dnssec_request_domains? yes (matched "*")
+ DNS lookup of nonexist.test.ex (MX) using fakens
+ DNS lookup of nonexist.test.ex (MX) gave HOST_NOT_FOUND
+ returning DNS_NOMATCH
+ faking res_search(MX) response length as 65535
+  writing neg-cache entry for nonexist.test.ex-MX-xxxx, ttl 3000
 lookuphost router declined for userx@nonexist.test.ex
 "more" is false: skipping remaining routers
 no more routers
 lookuphost router declined for userx@nonexist.test.ex
 "more" is false: skipping remaining routers
 no more routers
@@ -605,32 +652,36 @@ 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"?
+abcd in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=nonexist.test.ex
 checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
  list element: !userd
  list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@nonexist.test.ex
   domain = nonexist.test.ex
 calling lookuphost router
 lookuphost router called for abcd@nonexist.test.ex
   domain = nonexist.test.ex
-nonexist.test.ex in "*"?
- list element: *
- nonexist.test.ex in "*"? yes (matched "*")
-DNS lookup of nonexist.test.ex (MX): using cached value DNS_NOMATCH
+main lookup for domain
+ check dnssec require list
+  nonexist.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  nonexist.test.ex in dnssec_request_domains?
+   list element: *
+   nonexist.test.ex in dnssec_request_domains? 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
@@ -643,42 +694,45 @@ 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"?
+abcd in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-abcd in "^srv"? no (end of list)
+abcd in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
-abcd in "usery:userz"?
+abcd in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-abcd in "usery:userz"? no (end of list)
+abcd in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=abcd domain=ten-1.test.ex
 checking local_parts
-abcd in "!userd"?
+abcd in local_parts?
  list element: !userd
  list element: !userd
-abcd in "!userd"? yes (end of list)
+abcd in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
 calling lookuphost router
 lookuphost router called for abcd@ten-1.test.ex
   domain = ten-1.test.ex
-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) 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) succeeded
-fully qualified name = ten-1.test.ex
-ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
+main lookup for domain
+ check dnssec require list
+  ten-1.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  ten-1.test.ex in dnssec_request_domains?
+   list element: *
+   ten-1.test.ex in dnssec_request_domains? yes (matched "*")
+ DNS lookup of ten-1.test.ex (MX) using fakens
+ 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 (A) using fakens
+ 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 
 set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
 set transport smtp
 queued for smtp transport: local_part = abcd
 domain = ten-1.test.ex
@@ -697,17 +751,17 @@ 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"?
+usery in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-usery in "^srv"? no (end of list)
+usery in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=nonexist.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=usery domain=nonexist.test.ex
 checking local_parts
-usery in "usery:userz"?
+usery in local_parts?
  list element: usery
  list element: usery
- usery in "usery:userz"? yes (matched "usery")
+ usery in local_parts? yes (matched "usery")
 calling useryz router
 useryz router called for usery@nonexist.test.ex
   domain = nonexist.test.ex
 calling useryz router
 useryz router called for usery@nonexist.test.ex
   domain = nonexist.test.ex
@@ -720,10 +774,12 @@ expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
 set transport smtp
 finding IP address for nonexist.test.ex
 doing DNS lookup
 set transport smtp
 finding IP address for nonexist.test.ex
 doing DNS lookup
-nonexist.test.ex in "*"?
- list element: *
- nonexist.test.ex in "*"? yes (matched "*")
- list element: *
+check dnssec require list
+ nonexist.test.ex in dnssec_require_domains? no (option unset)
+check dnssec request list
+ nonexist.test.ex in dnssec_request_domains?
+  list element: *
+  nonexist.test.ex in dnssec_request_domains? yes (matched "*")
 DNS lookup of nonexist.test.ex (A) using fakens
 DNS lookup of nonexist.test.ex (A) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
 DNS lookup of nonexist.test.ex (A) using fakens
 DNS lookup of nonexist.test.ex (A) gave HOST_NOT_FOUND
 returning DNS_NOMATCH
@@ -740,18 +796,18 @@ 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"?
+userz in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-userz in "^srv"? no (end of list)
+userz in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=nonexist.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userz domain=nonexist.test.ex
 checking local_parts
-userz in "usery:userz"?
+userz in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
- userz in "usery:userz"? yes (matched "userz")
+ userz in local_parts? yes (matched "userz")
 calling useryz router
 useryz router called for userz@nonexist.test.ex
   domain = nonexist.test.ex
 calling useryz router
 useryz router called for userz@nonexist.test.ex
   domain = nonexist.test.ex
@@ -763,10 +819,12 @@ 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
 expanded list of hosts = 'nonexist.test.ex' options = 'bydns'
 finding IP address for nonexist.test.ex
 doing DNS lookup
-nonexist.test.ex in "*"?
- list element: *
- nonexist.test.ex in "*"? yes (matched "*")
- list element: *
+check dnssec require list
+ nonexist.test.ex in dnssec_require_domains? no (option unset)
+check dnssec request list
+ nonexist.test.ex in dnssec_request_domains?
+  list element: *
+  nonexist.test.ex in dnssec_request_domains? yes (matched "*")
 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
 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
@@ -779,37 +837,40 @@ 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"?
+xyz in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-xyz in "^srv"? no (end of list)
+xyz in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
-xyz in "usery:userz"?
+xyz in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-xyz in "usery:userz"? no (end of list)
+xyz in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=xyz domain=ten-1.test.ex
 checking local_parts
-xyz in "!userd"?
+xyz in local_parts?
  list element: !userd
  list element: !userd
-xyz in "!userd"? yes (end of list)
+xyz in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
 calling lookuphost router
 lookuphost router called for xyz@ten-1.test.ex
   domain = ten-1.test.ex
-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) succeeded
-fully qualified name = ten-1.test.ex
-ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx 
+main lookup for domain
+ check dnssec require list
+  ten-1.test.ex in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  ten-1.test.ex in dnssec_request_domains?
+   list element: *
+   ten-1.test.ex in dnssec_request_domains? yes (matched "*")
+ DNS lookup of ten-1.test.ex (MX): using cached value DNS_NODATA
+ DNS lookup of ten-1.test.ex (A) using fakens
+ 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
 queued for smtp transport: local_part = xyz
 domain = ten-1.test.ex
   errors_to=NULL
@@ -821,6 +882,7 @@ routed by lookuphost router
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=2 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
+Hints DB:
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1237
 configuration file is TESTSUITE/test-config
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1237
 configuration file is TESTSUITE/test-config
@@ -838,25 +900,29 @@ 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"?
+srv in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' not found in local cache
  compiled RE '^srv' saved in local cache
  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")
+ srv in local_parts? 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 "*"?
- 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) 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)
+main lookup for domain
+ check dnssec require list
+  test.again.dns in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  test.again.dns in dnssec_request_domains?
+   list element: *
+   test.again.dns in dnssec_request_domains? yes (matched "*")
+ DNS lookup of _smtp._tcp.test.again.dns (SRV) using fakens
+ 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 srv_fail_domains?
+  list element: test.fail.dns
+ test.again.dns in srv_fail_domains? no (end of list)
 srv router: defer for srv@test.again.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 srv router: defer for srv@test.again.dns
   message: host lookup did not complete
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -868,42 +934,46 @@ 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"?
+srv in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
- srv in "^srv"? yes (matched "^srv")
+ srv in local_parts? 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 "*"?
- 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) 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"?
- 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 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"?
- 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)
- list element: *
-DNS lookup of test.fail.dns (A) using fakens
-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
+main lookup for domain
+ check dnssec require list
+  test.fail.dns in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  test.fail.dns in dnssec_request_domains?
+   list element: *
+   test.fail.dns in dnssec_request_domains? yes (matched "*")
+ DNS lookup of _smtp._tcp.test.fail.dns (SRV) using fakens
+ 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 srv_fail_domains?
+  list element: test.fail.dns
+  test.fail.dns in srv_fail_domains? 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 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 mx_fail_domains?
+  list element: test.fail.dns
+  test.fail.dns in mx_fail_domains? yes (matched "test.fail.dns")
+ DNS_FAIL treated as DNS_NODATA (domain in mx_fail_domains)
+ DNS lookup of test.fail.dns (A) using fakens
+ 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=p1237 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 srv router: defer for srv@test.fail.dns
   message: host lookup did not complete
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=1 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
+Hints DB:
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1238
 configuration file is TESTSUITE/test-config
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=p1238
 configuration file is TESTSUITE/test-config
@@ -921,37 +991,41 @@ 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"?
+userx in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' not found in local cache
  compiled RE '^srv' saved in local cache
  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)
+userx in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
-userx in "usery:userz"?
+userx in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-userx in "usery:userz"? no (end of list)
+userx in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userx domain=nonexist.example.com
 checking local_parts
-userx in "!userd"?
+userx in local_parts?
  list element: !userd
  list element: !userd
-userx in "!userd"? yes (end of list)
+userx in local_parts? yes (end of list)
 calling lookuphost router
 lookuphost router called for userx@nonexist.example.com
   domain = nonexist.example.com
 calling lookuphost router
 lookuphost router called for userx@nonexist.example.com
   domain = nonexist.example.com
-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) gave HOST_NOT_FOUND
-returning DNS_NOMATCH
-faking res_search(MX) response length as 65535
- writing neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2
+main lookup for domain
+ check dnssec require list
+  nonexist.example.com in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  nonexist.example.com in dnssec_request_domains?
+   list element: *
+   nonexist.example.com in dnssec_request_domains? yes (matched "*")
+ DNS lookup of nonexist.example.com (MX) using fakens
+ DNS lookup of nonexist.example.com (MX) gave HOST_NOT_FOUND
+ returning DNS_NOMATCH
+ faking res_search(MX) response length as 65535
+  writing neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2
 lookuphost router declined for userx@nonexist.example.com
 "more" is false: skipping remaining routers
 no more routers
 lookuphost router declined for userx@nonexist.example.com
 "more" is false: skipping remaining routers
 no more routers
@@ -964,48 +1038,52 @@ 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"?
+userd in local_parts?
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
  list element: ^srv
  compiled caseless RE '^srv' found in local cache
-userd in "^srv"? no (end of list)
+userd in local_parts? no (end of list)
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
 srv router skipped: local_parts mismatch
 --------> useryz router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
-userd in "usery:userz"?
+userd in local_parts?
  list element: usery
  list element: userz
  list element: usery
  list element: userz
-userd in "usery:userz"? no (end of list)
+userd in local_parts? no (end of list)
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
 useryz router skipped: local_parts mismatch
 --------> lookuphost router <--------
 local_part=userd domain=nonexist.example.com
 checking local_parts
-userd in "!userd"?
+userd in local_parts?
  list element: !userd
  list element: !userd
- userd in "!userd"? no (matched "!userd")
+ userd in local_parts? no (matched "!userd")
 lookuphost router skipped: local_parts mismatch
 --------> delay router <--------
 local_part=userd domain=nonexist.example.com
 checking "condition" "${acl {delay}}"...
   using ACL "delay"
 lookuphost router skipped: local_parts mismatch
 --------> delay router <--------
 local_part=userd domain=nonexist.example.com
 checking "condition" "${acl {delay}}"...
   using ACL "delay"
-  processing "accept" (TESTSUITE/test-config 18)
+  processing ACL delay "accept" (TESTSUITE/test-config 18)
   check delay = 3s
   delay modifier requests 3-second delay
     message: y
   check delay = 3s
   delay modifier requests 3-second delay
     message: y
-  accept: condition test succeeded in ACL "delay"
-  end of ACL "delay": ACCEPT
+  accept: condition test succeeded in ACL delay
+  end of ACL delay: ACCEPT
 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 "*"?
- 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) gave HOST_NOT_FOUND
-returning DNS_NOMATCH
-faking res_search(MX) response length as 65535
- update neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2
+main lookup for domain
+ check dnssec require list
+  nonexist.example.com in dnssec_require_domains? no (option unset)
+ check dnssec request list
+  nonexist.example.com in dnssec_request_domains?
+   list element: *
+   nonexist.example.com in dnssec_request_domains? 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) gave HOST_NOT_FOUND
+ returning DNS_NOMATCH
+ faking res_search(MX) response length as 65535
+  update neg-cache entry for nonexist.example.com-MX-xxxx, ttl 2
 delay router declined for userd@nonexist.example.com
 "more" is false: skipping remaining routers
 no more routers
 delay router declined for userd@nonexist.example.com
 "more" is false: skipping remaining routers
 no more routers