[exim-cvs] Support TTL from SOA for NXDOMAIN & NODATA cache …

Top Page
Delete this message
Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] Support TTL from SOA for NXDOMAIN & NODATA cache entries for dnslists. Bug 1395
Gitweb: https://git.exim.org/exim.git/commitdiff/3462da30c9c57e63705fa24121655a32b315dfcf
Commit:     3462da30c9c57e63705fa24121655a32b315dfcf
Parent:     40fa69f0f370146d9b85dfc5990b612b6d9d1ce9
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Thu Sep 5 10:31:57 2019 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Thu Sep 5 14:44:53 2019 +0100


    Support TTL from SOA for NXDOMAIN & NODATA cache entries for dnslists.  Bug 1395
---
 src/src/dns.c                |   2 +-
 src/src/functions.h          |   1 +
 src/src/verify.c             |  84 +++++++-----
 test/dnszones-src/db.test.ex |   2 +-
 test/scripts/0000-Basic/0044 |  13 +-
 test/stderr/0023             |  54 ++++----
 test/stderr/0044             | 295 ++++++++++++++++++++++++++++++++++++-------
 test/stderr/0079             |  14 +-
 test/stderr/0080             |   3 +-
 test/stderr/0138             |  16 ++-
 test/stderr/0139             | 119 +++++++++--------
 test/stderr/0312             |   5 +-
 test/stderr/0386             |   7 +-
 test/stderr/0422             |   6 +-
 test/stderr/2201             |  10 +-
 test/stderr/3408             |   3 +-
 test/stdout/0044             |  17 +++
 17 files changed, 465 insertions(+), 186 deletions(-)


diff --git a/src/src/dns.c b/src/src/dns.c
index a1d567b..ece6524 100644
--- a/src/src/dns.c
+++ b/src/src/dns.c
@@ -686,7 +686,7 @@ in the SOA. We hope that one was returned in the lookup, and do not
bother doing a separate lookup; if not found return a forever TTL.
*/

-static time_t
+time_t
 dns_expire_from_soa(dns_answer * dnsa)
 {
 const HEADER * h = (const HEADER *)dnsa->answer;
diff --git a/src/src/functions.h b/src/src/functions.h
index c71bcb6..4a44096 100644
--- a/src/src/functions.h
+++ b/src/src/functions.h
@@ -195,6 +195,7 @@ extern BOOL    dkim_transport_write_message(transport_ctx *,
 extern dns_address *dns_address_from_rr(dns_answer *, dns_record *);
 extern int     dns_basic_lookup(dns_answer *, const uschar *, int);
 extern void    dns_build_reverse(const uschar *, uschar *);
+extern time_t  dns_expire_from_soa(dns_answer *);
 extern void    dns_init(BOOL, BOOL, BOOL);
 extern BOOL    dns_is_aa(const dns_answer *);
 extern BOOL    dns_is_secure(const dns_answer *);
diff --git a/src/src/verify.c b/src/src/verify.c
index 84c582c..384739b 100644
--- a/src/src/verify.c
+++ b/src/src/verify.c
@@ -3396,7 +3396,7 @@ if (  (t = tree_search(dnsbl_cache, query))
 /* Previous lookup was cached */


{
- HDEBUG(D_dnsbl) debug_printf("using result of previous DNS lookup\n");
+ HDEBUG(D_dnsbl) debug_printf("dnslists: using result of previous lookup\n");
}

/* If not cached from a previous lookup, we must do a DNS lookup, and
@@ -3404,7 +3404,7 @@ cache the result in permanent memory. */

 else
   {
-  uint ttl = 3600;
+  uint ttl = 3600;    /* max TTL for positive cache entries */


store_pool = POOL_PERM;

@@ -3439,34 +3439,58 @@ else
addresses generated in that way as well.

Mark the cache entry with the "now" plus the minimum of the address TTLs,
- or some suitably far-future time if none were found. */
+ or the RFC 2308 negative-cache value from the SOA if none were found. */

-  if (cb->rc == DNS_SUCCEED)
+  switch (cb->rc)
     {
-    dns_address ** addrp = &(cb->rhs);
-    for (dns_record * rr = dns_next_rr(dnsa, &dnss, RESET_ANSWERS); rr;
-         rr = dns_next_rr(dnsa, &dnss, RESET_NEXT))
-      if (rr->type == T_A)
-        {
-        dns_address *da = dns_address_from_rr(dnsa, rr);
-        if (da)
-          {
-          *addrp = da;
-          while (da->next) da = da->next;
-          addrp = &da->next;
+    case DNS_SUCCEED:
+      {
+      dns_address ** addrp = &cb->rhs;
+      dns_address * da;
+      for (dns_record * rr = dns_next_rr(dnsa, &dnss, RESET_ANSWERS); rr;
+       rr = dns_next_rr(dnsa, &dnss, RESET_NEXT))
+    if (rr->type == T_A && (da = dns_address_from_rr(dnsa, rr)))
+      {
+      *addrp = da;
+      while (da->next) da = da->next;
+      addrp = &da->next;
       if (ttl > rr->ttl) ttl = rr->ttl;
-          }
-        }
+      }
+
+      if (cb->rhs)
+    {
+    cb->expiry = time(NULL) + ttl;
+    break;
+    }
+
+      /* If we didn't find any A records, change the return code. This can
+      happen when there is a CNAME record but there are no A records for what
+      it points to. */
+
+      cb->rc = DNS_NODATA;
+      }
+      /*FALLTHROUGH*/


-    /* If we didn't find any A records, change the return code. This can
-    happen when there is a CNAME record but there are no A records for what
-    it points to. */
+    case DNS_NOMATCH:
+    case DNS_NODATA:
+      {
+      /* Although there already is a neg-cache layer maintained by
+      dns_basic_lookup(), we have a dnslist cache entry allocated and
+      tree-inserted. So we may as well use it. */


-    if (!cb->rhs) cb->rc = DNS_NODATA;
+      time_t soa_negttl = dns_expire_from_soa(dnsa);
+      cb->expiry = soa_negttl ? soa_negttl : time(NULL) + ttl;
+      break;
+      }
+
+    default:
+      cb->expiry = time(NULL) + ttl;
+      break;
     }


-  cb->expiry = time(NULL)+ttl;
   store_pool = old_pool;
+  HDEBUG(D_dnsbl) debug_printf("dnslists: wrote cache entry, ttl=%d\n",
+    (int)(cb->expiry - time(NULL)));
   }


/* We now have the result of the DNS lookup, either newly done, or cached
@@ -3477,7 +3501,7 @@ list (introduced by "&"), or a negative bitmask list (introduced by "!&").*/

if (cb->rc == DNS_SUCCEED)
{
- dns_address *da = NULL;
+ dns_address * da = NULL;
uschar *addlist = cb->rhs->address;

   /* For A and AAAA records, there may be multiple addresses from multiple
@@ -3714,7 +3738,7 @@ dns_init(FALSE, FALSE, FALSE);    /*XXX dnssec? */


/* Loop through all the domains supplied, until something matches */

-while ((domain = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL)
+while ((domain = string_nextinlist(&list, &sep, buffer, sizeof(buffer))))
{
int rc;
BOOL bitmask = FALSE;
@@ -3724,7 +3748,7 @@ while ((domain = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL
uschar *iplist;
uschar *key;

- HDEBUG(D_dnsbl) debug_printf("DNS list check: %s\n", domain);
+ HDEBUG(D_dnsbl) debug_printf("dnslists check: %s\n", domain);

/* Deal with special values that change the behaviour on defer */

@@ -3778,8 +3802,7 @@ while ((domain = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL
set domain_txt == domain. */

   domain_txt = domain;
-  comma = Ustrchr(domain, ',');
-  if (comma != NULL)
+  if ((comma = Ustrchr(domain, ',')))
     {
     *comma++ = 0;
     domain = comma;
@@ -3821,7 +3844,7 @@ while ((domain = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL
       acl_wherenames[where]);
       return ERROR;
       }
-    if (sender_host_address == NULL) return FAIL;    /* can never match */
+    if (!sender_host_address) return FAIL;    /* can never match */
     if (revadd[0] == 0) invert_address(revadd, sender_host_address);
     rc = one_check_dnsbl(domain, domain_txt, sender_host_address, revadd,
       iplist, bitmask, match_type, defer_return);
@@ -3843,11 +3866,9 @@ while ((domain = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL
     int keysep = 0;
     BOOL defer = FALSE;
     uschar *keydomain;
-    uschar keybuffer[256];
     uschar keyrevadd[128];


-    while ((keydomain = string_nextinlist(CUSS &key, &keysep, keybuffer,
-            sizeof(keybuffer))) != NULL)
+    while ((keydomain = string_nextinlist(CUSS &key, &keysep, NULL, 0)))
       {
       uschar *prepend = keydomain;


@@ -3859,7 +3880,6 @@ while ((domain = string_nextinlist(&list, &sep, buffer, sizeof(buffer))) != NULL

       rc = one_check_dnsbl(domain, domain_txt, keydomain, prepend, iplist,
         bitmask, match_type, defer_return);
-
       if (rc == OK)
         {
         dnslist_domain = string_copy(domain_txt);
diff --git a/test/dnszones-src/db.test.ex b/test/dnszones-src/db.test.ex
index d096f8f..be51093 100644
--- a/test/dnszones-src/db.test.ex
+++ b/test/dnszones-src/db.test.ex
@@ -172,7 +172,7 @@ cname4       CNAME   thishost


; V4NET.11.12.13 is deliberately not reverse-registered

-13.12.11.V4NET.rbl    A   127.0.0.2
+TTL=1 13.12.11.V4NET.rbl    A   127.0.0.2
                       TXT "This is a test blacklisting message"
 TTL=2 14.12.11.V4NET.rbl A 127.0.0.2
                       TXT "This is a test blacklisting message"
diff --git a/test/scripts/0000-Basic/0044 b/test/scripts/0000-Basic/0044
index 90870b7..0286aed 100644
--- a/test/scripts/0000-Basic/0044
+++ b/test/scripts/0000-Basic/0044
@@ -1,9 +1,13 @@
 # RBL blocking (unregistered host)
-exim -bh V4NET.11.12.13
+#
+# The list2 checks the dnslist layer positive caching
+# We cannot check the cache ttl because -bh defeats delays
+exim -d -bh V4NET.11.12.13
 ehlo exim.test.ex
 mail from:postmaster@???
 rcpt to:<postmaster@???>
 rcpt to:list@???
+rcpt to:list2@???
 data
 test data
 .
@@ -18,4 +22,11 @@ test data
 .
 quit
 ****
+#
+# check negative-cache ttl
+exim -d -bh V4NET.99.99.99
+ehlo exim.test.ex
+mail from:postmaster@???
+rcpt to:list@???
+****
 no_msglog_check
diff --git a/test/stderr/0023 b/test/stderr/0023
index cb371d2..140fc7a 100644
--- a/test/stderr/0023
+++ b/test/stderr/0023
@@ -653,8 +653,9 @@ LOG: H=[5.6.13.1] F=<x@y> rejected RCPT <x2@y>

>>> message: host in DNS list $dnslist_domain: $dnslist_text
>>> l_message: DNSLIST ($dnslist_domain: $dnslist_text)
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
+>>> dnslists check: rbl.test.ex
>>> new DNS lookup for 13.12.11.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=1
>>> DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.13 is listed at rbl.test.ex
>>> deny: condition test succeeded in ACL "acl_V4NET_11_12"

@@ -665,8 +666,8 @@ LOG: H=[V4NET.11.12.13] F=<x@y> rejected RCPT <x@y>: DNSLIST (rbl.test.ex: This
>>> message: host in DNS list $dnslist_domain: $dnslist_text
>>> l_message: DNSLIST ($dnslist_domain: $dnslist_text)
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.13 is listed at rbl.test.ex
>>> deny: condition test succeeded in ACL "acl_V4NET_11_12"

@@ -685,8 +686,9 @@ LOG: H=[V4NET.11.12.13] F=<x@y> rejected RCPT <x1@y>: DNSLIST (rbl.test.ex: This
>>> message: host in DNS list $dnslist_domain: $dnslist_text
>>> l_message: DNSLIST ($dnslist_domain: $dnslist_text)
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
+>>> dnslists check: rbl.test.ex
>>> new DNS lookup for 12.12.11.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 12.12.11.V4NET.rbl.test.ex failed
>>> => that means V4NET.11.12.12 is not listed at rbl.test.ex
>>> deny: condition test failed in ACL "acl_V4NET_11_12"

@@ -698,8 +700,8 @@ LOG: H=[V4NET.11.12.13] F=<x@y> rejected RCPT <x1@y>: DNSLIST (rbl.test.ex: This
>>> message: host in DNS list $dnslist_domain: $dnslist_text
>>> l_message: DNSLIST ($dnslist_domain: $dnslist_text)
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 12.12.11.V4NET.rbl.test.ex failed
>>> => that means V4NET.11.12.12 is not listed at rbl.test.ex
>>> deny: condition test failed in ACL "acl_V4NET_11_12"

@@ -1168,8 +1170,9 @@ LOG: H=[V4NET.99.99.96] F=<> temporarily rejected RCPT <x@y>: host lookup deferr
 >>> processing "deny" (TESTSUITE/test-config 154)
 >>> check dnslists = test.ex/$sender_address_domain
 >>>                = test.ex/localhost

->>> DNS list check: test.ex/localhost
+>>> dnslists check: test.ex/localhost
>>> new DNS lookup for localhost.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for localhost.test.ex succeeded (yielding 127.0.0.1)
>>> => that means localhost is listed at test.ex
>>> deny: condition test succeeded in ACL "acl_29_29_29"

@@ -1179,8 +1182,9 @@ LOG: H=[29.29.29.29] F=<a@localhost> rejected RCPT <x@y>
 >>> processing "deny" (TESTSUITE/test-config 154)
 >>> check dnslists = test.ex/$sender_address_domain
 >>>                = test.ex/elsewhere

->>> DNS list check: test.ex/elsewhere
+>>> dnslists check: test.ex/elsewhere
>>> new DNS lookup for elsewhere.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for elsewhere.test.ex failed
>>> => that means elsewhere is not listed at test.ex
>>> deny: condition test failed in ACL "acl_29_29_29"

@@ -1200,8 +1204,9 @@ LOG: H=[29.29.29.29] F=<a@localhost> rejected RCPT <x@y>
 >>>   message: domain=$dnslist_domain\nvalue=$dnslist_value\nmatched=$dnslist_matched\ntext="$dnslist_text"
 >>> check dnslists = test.ex=V4NET.0.0.1,127.0.0.2/$sender_address_domain
 >>>                = test.ex=V4NET.0.0.1,127.0.0.2/ten-1

->>> DNS list check: test.ex=V4NET.0.0.1,127.0.0.2/ten-1
+>>> dnslists check: test.ex=V4NET.0.0.1,127.0.0.2/ten-1
>>> new DNS lookup for ten-1.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for ten-1.test.ex succeeded (yielding V4NET.0.0.1)
>>> => that means ten-1 is listed at test.ex
>>> deny: condition test succeeded in ACL "acl_30_30_30"

@@ -1212,8 +1217,9 @@ LOG: H=[30.30.30.30] F=<a@ten-1> rejected RCPT <x@y>: domain=test.ex
 >>>   message: domain=$dnslist_domain\nvalue=$dnslist_value\nmatched=$dnslist_matched\ntext="$dnslist_text"
 >>> check dnslists = test.ex=V4NET.0.0.1,127.0.0.2/$sender_address_domain
 >>>                = test.ex=V4NET.0.0.1,127.0.0.2/ten-2

->>> DNS list check: test.ex=V4NET.0.0.1,127.0.0.2/ten-2
+>>> dnslists check: test.ex=V4NET.0.0.1,127.0.0.2/ten-2
>>> new DNS lookup for ten-2.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for ten-2.test.ex succeeded (yielding V4NET.0.0.2)
>>> => but we are not accepting this block class because
>>> => there was no match for =V4NET.0.0.1,127.0.0.2

@@ -1227,8 +1233,9 @@ LOG: H=[30.30.30.30] F=<a@ten-1> rejected RCPT <x@y>: domain=test.ex
 >>>   message: domain=$dnslist_domain\nvalue=$dnslist_value\nmatched=$dnslist_matched\ntext="$dnslist_text"
 >>> check dnslists = test.ex=V4NET.0.0.1,127.0.0.2/$sender_address_domain
 >>>                = test.ex=V4NET.0.0.1,127.0.0.2/13.12.11.V4NET.rbl

->>> DNS list check: test.ex=V4NET.0.0.1,127.0.0.2/13.12.11.V4NET.rbl
+>>> dnslists check: test.ex=V4NET.0.0.1,127.0.0.2/13.12.11.V4NET.rbl
>>> new DNS lookup for 13.12.11.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=1
>>> DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means 13.12.11.V4NET.rbl is listed at test.ex
>>> deny: condition test succeeded in ACL "acl_30_30_30"

@@ -1246,8 +1253,8 @@ LOG: H=[30.30.30.30] F=<a@???> rejected RCPT <x@y>: domain=test.e
 >>> processing "deny" (TESTSUITE/test-config 167)
 >>> check dnslists = test.ex/$sender_address_domain+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+END
 >>>                = test.ex/y+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+END

->>> DNS list check: test.ex/y+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+END
-LOG: dnslist query is too long (ignored): y+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+e...
+>>> dnslists check: test.ex/y+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+END
+LOG: dnslist query is too long (ignored): y+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+extra+...
>>> deny: condition test failed in ACL "acl_31_31_31"
>>> processing "accept" (TESTSUITE/test-config 168)
>>> accept: condition test succeeded in ACL "acl_31_31_31"

@@ -1293,31 +1300,32 @@ LOG: H=[33.33.33.33] F=<x@y> rejected RCPT <x2@y>: Sender verify failed
>>> using ACL "acl_44_44_44"
>>> processing "warn" (TESTSUITE/test-config 192)
>>> check dnslists = test.again.dns

->>> DNS list check: test.again.dns
+>>> dnslists check: test.again.dns
>>> new DNS lookup for 1.44.44.44.test.again.dns
>>> 1.44.44.44.test.again.dns in dns_again_means_nonexist? no (option unset)

+>>> dnslists: wrote cache entry, ttl=3600
LOG: DNS list lookup defer (probably timeout) for 1.44.44.44.test.again.dns: assumed not in list
>>> warn: condition test failed in ACL "acl_44_44_44"
>>> processing "warn" (TESTSUITE/test-config 193)
>>> check dnslists = +include_unknown : test.again.dns

->>> DNS list check: +include_unknown
->>> DNS list check: test.again.dns
->>> using result of previous DNS lookup
+>>> dnslists check: +include_unknown
+>>> dnslists check: test.again.dns
+>>> dnslists: using result of previous lookup
LOG: DNS list lookup defer (probably timeout) for 1.44.44.44.test.again.dns: assumed in list
>>> => that means 44.44.44.1 is listed at test.again.dns
>>> warn: condition test succeeded in ACL "acl_44_44_44"
>>> processing "warn" (TESTSUITE/test-config 194)
>>> check dnslists = +exclude_unknown : test.again.dns

->>> DNS list check: +exclude_unknown
->>> DNS list check: test.again.dns
->>> using result of previous DNS lookup
+>>> dnslists check: +exclude_unknown
+>>> dnslists check: test.again.dns
+>>> dnslists: using result of previous lookup
LOG: DNS list lookup defer (probably timeout) for 1.44.44.44.test.again.dns: assumed not in list
>>> warn: condition test failed in ACL "acl_44_44_44"
>>> processing "warn" (TESTSUITE/test-config 195)
>>> check dnslists = +defer_unknown : test.again.dns

->>> DNS list check: +defer_unknown
->>> DNS list check: test.again.dns
->>> using result of previous DNS lookup
+>>> dnslists check: +defer_unknown
+>>> dnslists check: test.again.dns
+>>> dnslists: using result of previous lookup
LOG: DNS list lookup defer (probably timeout) for 1.44.44.44.test.again.dns: returned DEFER
>>> warn: condition test deferred in ACL "acl_44_44_44"

 LOG: H=[44.44.44.1] Warning: ACL "warn" statement skipped: condition test deferred
diff --git a/test/stderr/0044 b/test/stderr/0044
index 6d0d65e..0a2b983 100644
--- a/test/stderr/0044
+++ b/test/stderr/0044
@@ -1,51 +1,149 @@
->>> host in hosts_connection_nolog? no (option unset)
->>> host in host_lookup? no (option unset)
->>> host in host_reject_connection? no (option unset)
->>> host in sender_unqualified_hosts? no (option unset)
->>> host in recipient_unqualified_hosts? no (option unset)
->>> host in helo_verify_hosts? no (option unset)
->>> host in helo_try_verify_hosts? no (option unset)
->>> host in helo_accept_junk_hosts? no (option unset)
->>> exim.test.ex in helo_lookup_domains? no (end of list)
->>> host in dsn_advertise_hosts? no (option unset)
->>> host in pipelining_advertise_hosts? yes (matched "*")
->>> host in chunking_advertise_hosts? no (end of list)
->>> using ACL "check_recipient"
->>> processing "accept" (TESTSUITE/test-config 19)
->>> check hosts = :
->>> host in ":"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept" (TESTSUITE/test-config 20)
->>> check recipients = postmaster@???
->>> exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
->>> postmaster@??? in "postmaster@???"? yes (matched "postmaster@???")
->>> accept: condition test succeeded in ACL "check_recipient"
->>> end of ACL "check_recipient": ACCEPT
->>> using ACL "check_recipient"
->>> processing "accept" (TESTSUITE/test-config 19)
->>> check hosts = :
->>> host in ":"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept" (TESTSUITE/test-config 20)
->>> check recipients = postmaster@???
->>> list@??? in "postmaster@???"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept" (TESTSUITE/test-config 21)
->>> check senders = myfriend@*
->>> postmaster@??? in "myfriend@*"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "deny" (TESTSUITE/test-config 22)
->>>   message: host is listed in $dnslist_domain
->>> check dnslists = rbl.test.ex
->>> DNS list check: rbl.test.ex
->>> new DNS lookup for 13.12.11.V4NET.rbl.test.ex
->>> DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
->>> => that means V4NET.11.12.13 is listed at rbl.test.ex
->>> deny: condition test succeeded in ACL "check_recipient"
->>> end of ACL "check_recipient": DENY
-LOG: H=(exim.test.ex) [V4NET.11.12.13] F=<postmaster@???> rejected RCPT list@???: host is listed in rbl.test.ex
->>> host in ignore_fromline_hosts? no (option unset)
-LOG: 10HmaX-0005vi-00 <= postmaster@??? H=(exim.test.ex) [V4NET.11.12.13] P=esmtp S=sss
+Exim version x.yz ....
+changed uid/gid: forcing real = effective
+  uid=uuuu gid=CALLER_GID pid=pppp
+configuration file is TESTSUITE/test-config
+admin user
+changed uid/gid: privilege not needed
+  uid=EXIM_UID gid=EXIM_GID pid=pppp
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
+originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
+sender address = CALLER@???
+sender_fullhost = [V4NET.11.12.13]
+sender_rcvhost = [V4NET.11.12.13]
+host in hosts_connection_nolog? no (option unset)
+LOG: smtp_connection MAIN
+  SMTP connection from [V4NET.11.12.13]
+host in host_lookup? no (option unset)
+set_process_info: pppp handling incoming connection from [V4NET.11.12.13]
+host in host_reject_connection? no (option unset)
+host in sender_unqualified_hosts? no (option unset)
+host in recipient_unqualified_hosts? no (option unset)
+host in helo_verify_hosts? no (option unset)
+host in helo_try_verify_hosts? no (option unset)
+host in helo_accept_junk_hosts? no (option unset)
+SMTP>> 220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+smtp_setup_msg entered
+SMTP<< ehlo exim.test.ex
+exim.test.ex in helo_lookup_domains? no (end of list)
+sender_fullhost = (exim.test.ex) [V4NET.11.12.13]
+sender_rcvhost = [V4NET.11.12.13] (helo=exim.test.ex)
+set_process_info: pppp handling incoming connection from (exim.test.ex) [V4NET.11.12.13]
+host in dsn_advertise_hosts? no (option unset)
+host in pipelining_advertise_hosts? yes (matched "*")
+host in chunking_advertise_hosts? no (end of list)
+SMTP>> 250-the.local.host.name Hello exim.test.ex [V4NET.11.12.13]
+250-SIZE 52428800
+250-8BITMIME
+250-PIPELINING
+250 HELP
+SMTP<< mail from:postmaster@???
+spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
+log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
+SMTP>> 250 OK
+SMTP<< rcpt to:<postmaster@???>
+using ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 19)
+check hosts = :
+host in ":"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 20)
+check recipients = postmaster@???
+address match test: subject=postmaster@??? pattern=postmaster@???
+exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
+postmaster@??? in "postmaster@???"? yes (matched "postmaster@???")
+accept: condition test succeeded in ACL "check_recipient"
+end of ACL "check_recipient": ACCEPT
+SMTP>> 250 Accepted
+DSN: orcpt: NULL  flags: 0
+SMTP<< rcpt to:list@???
+using ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 19)
+check hosts = :
+host in ":"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 20)
+check recipients = postmaster@???
+address match test: subject=list@??? pattern=postmaster@???
+list@??? in "postmaster@???"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 21)
+check senders = myfriend@*
+address match test: subject=postmaster@??? pattern=myfriend@*
+postmaster@??? in "myfriend@*"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "deny" (TESTSUITE/test-config 22)
+  message: host is listed in $dnslist_domain
+check dnslists = rbl.test.ex
+dnslists check: rbl.test.ex
+new DNS lookup for 13.12.11.V4NET.rbl.test.ex
+DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) using fakens
+DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) succeeded
+dnslists: wrote cache entry, ttl=1
+DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
+DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) using fakens
+DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) succeeded
+=> that means V4NET.11.12.13 is listed at rbl.test.ex
+deny: condition test succeeded in ACL "check_recipient"
+end of ACL "check_recipient": DENY
+SMTP>> 550 host is listed in rbl.test.ex
+LOG: MAIN REJECT
+  H=(exim.test.ex) [V4NET.11.12.13] F=<postmaster@???> rejected RCPT list@???: host is listed in rbl.test.ex
+SMTP<< rcpt to:list2@???
+using ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 19)
+check hosts = :
+host in ":"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 20)
+check recipients = postmaster@???
+address match test: subject=list2@??? pattern=postmaster@???
+list2@??? in "postmaster@???"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 21)
+check senders = myfriend@*
+address match test: subject=postmaster@??? pattern=myfriend@*
+postmaster@??? in "myfriend@*"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "deny" (TESTSUITE/test-config 22)
+  message: host is listed in $dnslist_domain
+check dnslists = rbl.test.ex
+dnslists check: rbl.test.ex
+dnslists: using result of previous lookup
+DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
+=> that means V4NET.11.12.13 is listed at rbl.test.ex
+deny: condition test succeeded in ACL "check_recipient"
+end of ACL "check_recipient": DENY
+SMTP>> 550 host is listed in rbl.test.ex
+LOG: MAIN REJECT
+  H=(exim.test.ex) [V4NET.11.12.13] F=<postmaster@???> rejected RCPT list2@???: host is listed in rbl.test.ex
+SMTP<< data
+SMTP>> 354 Enter message, ending with "." on a line by itself
+search_tidyup called
+host in ignore_fromline_hosts? no (option unset)
+>>Headers received:
+
+search_tidyup called
+>>Headers after rewriting and local additions:
+
+Data file name: TESTSUITE/spool//input//10HmaX-0005vi-00-D
+Data file written for message 10HmaX-0005vi-00
+>>Generated Received: header line
+P Received: from [V4NET.11.12.13] (helo=exim.test.ex)
+    by the.local.host.name with esmtp (Exim x.yz)
+    (envelope-from <postmaster@???>)
+    id 10HmaX-0005vi-00
+    for postmaster@???; Tue, 2 Mar 1999 09:44:33 +0000
+LOG: MAIN
+  <= postmaster@??? H=(exim.test.ex) [V4NET.11.12.13] P=esmtp S=sss
+SMTP>> 250 OK id=10HmaX-0005vi-00
+smtp_setup_msg entered
+SMTP<< quit
+SMTP>> 221 the.local.host.name closing connection
+LOG: smtp_connection MAIN
+  SMTP connection from (exim.test.ex) [V4NET.11.12.13] closed by QUIT
+search_tidyup called
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>

>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)

@@ -75,3 +173,104 @@ LOG: 10HmaX-0005vi-00 <= postmaster@??? H=(exim.test.ex) [V4NET.11.12.1
>>> end of ACL "check_recipient": ACCEPT
>>> host in ignore_fromline_hosts? no (option unset)

LOG: 10HmaY-0005vi-00 <= myfriend@??? H=(exim.test.ex) [V4NET.11.12.13] P=esmtp S=sss
+Exim version x.yz ....
+changed uid/gid: forcing real = effective
+ uid=uuuu gid=CALLER_GID pid=pppp
+configuration file is TESTSUITE/test-config
+admin user
+changed uid/gid: privilege not needed
+ uid=EXIM_UID gid=EXIM_GID pid=pppp
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
+originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
+sender address = CALLER@???
+sender_fullhost = [V4NET.99.99.99]
+sender_rcvhost = [V4NET.99.99.99]
+host in hosts_connection_nolog? no (option unset)
+LOG: smtp_connection MAIN
+ SMTP connection from [V4NET.99.99.99]
+host in host_lookup? no (option unset)
+set_process_info: pppp handling incoming connection from [V4NET.99.99.99]
+host in host_reject_connection? no (option unset)
+host in sender_unqualified_hosts? no (option unset)
+host in recipient_unqualified_hosts? no (option unset)
+host in helo_verify_hosts? no (option unset)
+host in helo_try_verify_hosts? no (option unset)
+host in helo_accept_junk_hosts? no (option unset)
+SMTP>> 220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+smtp_setup_msg entered
+SMTP<< ehlo exim.test.ex
+exim.test.ex in helo_lookup_domains? no (end of list)
+sender_fullhost = (exim.test.ex) [V4NET.99.99.99]
+sender_rcvhost = [V4NET.99.99.99] (helo=exim.test.ex)
+set_process_info: pppp handling incoming connection from (exim.test.ex) [V4NET.99.99.99]
+host in dsn_advertise_hosts? no (option unset)
+host in pipelining_advertise_hosts? yes (matched "*")
+host in chunking_advertise_hosts? no (end of list)
+SMTP>> 250-the.local.host.name Hello exim.test.ex [V4NET.99.99.99]
+250-SIZE 52428800
+250-8BITMIME
+250-PIPELINING
+250 HELP
+SMTP<< mail from:postmaster@???
+spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
+log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
+SMTP>> 250 OK
+SMTP<< rcpt to:list@???
+using ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 19)
+check hosts = :
+host in ":"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 20)
+check recipients = postmaster@???
+address match test: subject=list@??? pattern=postmaster@???
+list@??? in "postmaster@???"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "accept" (TESTSUITE/test-config 21)
+check senders = myfriend@*
+address match test: subject=postmaster@??? pattern=myfriend@*
+postmaster@??? in "myfriend@*"? no (end of list)
+accept: condition test failed in ACL "check_recipient"
+processing "deny" (TESTSUITE/test-config 22)
+ message: host is listed in $dnslist_domain
+check dnslists = rbl.test.ex
+dnslists check: rbl.test.ex
+new DNS lookup for 99.99.99.V4NET.rbl.test.ex
+DNS lookup of 99.99.99.V4NET.rbl.test.ex (A) using fakens
+DNS lookup of 99.99.99.V4NET.rbl.test.ex (A) gave HOST_NOT_FOUND
+returning DNS_NOMATCH
+ writing neg-cache entry for 99.99.99.V4NET.rbl.test.ex-A-xxxx, ttl 5
+dnslists: wrote cache entry, ttl=5
+DNS lookup for 99.99.99.V4NET.rbl.test.ex failed
+=> that means V4NET.99.99.99 is not listed at rbl.test.ex
+deny: condition test failed in ACL "check_recipient"
+processing "require" (TESTSUITE/test-config 24)
+check verify = sender
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying postmaster@???
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering postmaster@???
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+routing postmaster@???
+--------> localuser router <--------
+local_part=postmaster domain=exim.test.ex
+checking local_parts
+postmaster in "userx"? no (end of list)
+localuser router skipped: local_parts mismatch
+no more routers
+----------- end verify ------------
+require: condition test failed in ACL "check_recipient"
+end of ACL "check_recipient": not OK
+LOG: MAIN REJECT
+ H=(exim.test.ex) [V4NET.99.99.99] sender verify fail for <postmaster@???>: Unrouteable address
+SMTP>> 550-Verification failed for <postmaster@???>
+SMTP>> 550-Unrouteable address
+SMTP>> 550 Sender verify failed
+LOG: MAIN REJECT
+ H=(exim.test.ex) [V4NET.99.99.99] F=<postmaster@???> rejected RCPT list@???: Sender verify failed
+SMTP>> 421 the.local.host.name lost input connection
+LOG: lost_incoming_connection MAIN
+ unexpected disconnection while reading SMTP command from (exim.test.ex) [V4NET.99.99.99] D=qqs
+search_tidyup called
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0079 b/test/stderr/0079
index d4d5293..9e4b559 100644
--- a/test/stderr/0079
+++ b/test/stderr/0079
@@ -19,8 +19,9 @@
>>> message: X-Warning: $sender_host_address is blacklisted at $dnslist_domain
>>> l_message: $sender_host_address is in $dnslist_domain
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
+>>> dnslists check: rbl.test.ex
>>> new DNS lookup for 14.12.11.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=2
>>> DNS lookup for 14.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_recipient"

@@ -32,8 +33,9 @@ LOG: H=(exim.test.ex) [V4NET.11.12.14] Warning: V4NET.11.12.14 is in rbl.test.ex
>>> exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
>>> postmaster@??? in "postmaster@???"? yes (matched "postmaster@???")
>>> check dnslists = rbl2.test.ex

->>> DNS list check: rbl2.test.ex
+>>> dnslists check: rbl2.test.ex
>>> new DNS lookup for 14.12.11.V4NET.rbl2.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 14.12.11.V4NET.rbl2.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl2.test.ex
>>> warn: condition test succeeded in ACL "check_recipient"

@@ -53,8 +55,8 @@ LOG: H=(exim.test.ex) [V4NET.11.12.14] Warning: accepting postmaster from host i
>>> message: X-Warning: $sender_host_address is blacklisted at $dnslist_domain
>>> l_message: $sender_host_address is in $dnslist_domain
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_recipient"

@@ -71,8 +73,8 @@ LOG: H=(exim.test.ex) [V4NET.11.12.14] Warning: accepting postmaster from host i
>>> processing "deny" (TESTSUITE/test-config 33)
>>> message: host is listed in $dnslist_domain
>>> check dnslists = rbl2.test.ex

->>> DNS list check: rbl2.test.ex
->>> using result of previous DNS lookup
+>>> dnslists check: rbl2.test.ex
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl2.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl2.test.ex
>>> deny: condition test succeeded in ACL "check_recipient"

diff --git a/test/stderr/0080 b/test/stderr/0080
index d8c7d21..6d893b7 100644
--- a/test/stderr/0080
+++ b/test/stderr/0080
@@ -25,8 +25,9 @@
>>> processing "deny" (TESTSUITE/test-config 20)
>>> message: host is listed in $dnslist_domain
>>> check dnslists = rbl.test.ex:rbl2.test.ex

->>> DNS list check: rbl.test.ex
+>>> dnslists check: rbl.test.ex
>>> new DNS lookup for 14.12.11.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=2
>>> DNS lookup for 14.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl.test.ex
>>> deny: condition test succeeded in ACL "check_recipient"

diff --git a/test/stderr/0138 b/test/stderr/0138
index 152dd0a..ed7121b 100644
--- a/test/stderr/0138
+++ b/test/stderr/0138
@@ -21,8 +21,9 @@
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 19)
>>> check dnslists = rbl3.test.ex

->>> DNS list check: rbl3.test.ex
+>>> dnslists check: rbl3.test.ex
>>> new DNS lookup for 14.12.11.V4NET.rbl3.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 14.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl3.test.ex
>>> accept: condition test succeeded in ACL "check_recipient"

@@ -38,8 +39,8 @@
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 19)
>>> check dnslists = rbl3.test.ex

->>> DNS list check: rbl3.test.ex
->>> using result of previous DNS lookup
+>>> dnslists check: rbl3.test.ex
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl3.test.ex
>>> accept: condition test succeeded in ACL "check_recipient"

@@ -69,24 +70,27 @@ LOG: 10HmaX-0005vi-00 <= postmaster@??? H=(exim.test.ex) [V4NET.11.12.1
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "accept" (TESTSUITE/test-config 19)
>>> check dnslists = rbl3.test.ex

->>> DNS list check: rbl3.test.ex
+>>> dnslists check: rbl3.test.ex
>>> new DNS lookup for 13.12.11.V4NET.rbl3.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 13.12.11.V4NET.rbl3.test.ex failed
>>> => that means V4NET.11.12.13 is not listed at rbl3.test.ex
>>> accept: condition test failed in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 20)
>>> message: host is listed in $dnslist_domain
>>> check dnslists = rbl2.test.ex

->>> DNS list check: rbl2.test.ex
+>>> dnslists check: rbl2.test.ex
>>> new DNS lookup for 13.12.11.V4NET.rbl2.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 13.12.11.V4NET.rbl2.test.ex failed
>>> => that means V4NET.11.12.13 is not listed at rbl2.test.ex
>>> deny: condition test failed in ACL "check_recipient"
>>> processing "warn" (TESTSUITE/test-config 22)
>>> message: X-Warning: $sender_host_address is listed at $dnslist_domain
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
+>>> dnslists check: rbl.test.ex
>>> new DNS lookup for 13.12.11.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=1
>>> DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.13 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_recipient"

diff --git a/test/stderr/0139 b/test/stderr/0139
index ef7063b..1e94516 100644
--- a/test/stderr/0139
+++ b/test/stderr/0139
@@ -9,29 +9,30 @@
>>> using ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 36)
>>> check dnslists = rbl4.test.ex&0.0.0.6

->>> DNS list check: rbl4.test.ex&0.0.0.6
+>>> dnslists check: rbl4.test.ex&0.0.0.6
>>> new DNS lookup for 14.12.11.V4NET.rbl4.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 14.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.14 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = rbl4.test.ex&127.0.0.3

->>> DNS list check: rbl4.test.ex&127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex&127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.14 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex!&0.0.0.7

->>> DNS list check: rbl4.test.ex!&0.0.0.7
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex!&0.0.0.7
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.14 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 40)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128

->>> DNS list check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
->>> using result of previous DNS lookup
+>>> dnslists check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.14 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"

@@ -42,16 +43,17 @@
>>> processing "warn" (TESTSUITE/test-config 46)
>>> message: X-Warn: host is listed in $dnslist_domain but not =127.0.0.3${if def:dnslist_text{\n $dnslist_text}}
>>> check dnslists = rbl3.test.ex!=127.0.0.3

->>> DNS list check: rbl3.test.ex!=127.0.0.3
+>>> dnslists check: rbl3.test.ex!=127.0.0.3
>>> new DNS lookup for 14.12.11.V4NET.rbl3.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 14.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl3.test.ex
>>> warn: condition test succeeded in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 49)
>>> message: host is listed in $dnslist_domain with value 127.0.0.3${if def:dnslist_text{\n$dnslist_text}}
>>> check dnslists = rbl3.test.ex=127.0.0.3

->>> DNS list check: rbl3.test.ex=127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl3.test.ex=127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.2)
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.3

@@ -93,16 +95,16 @@
>>> processing "warn" (TESTSUITE/test-config 46)
>>> message: X-Warn: host is listed in $dnslist_domain but not =127.0.0.3${if def:dnslist_text{\n $dnslist_text}}
>>> check dnslists = rbl3.test.ex!=127.0.0.3

->>> DNS list check: rbl3.test.ex!=127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl3.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl3.test.ex
>>> warn: condition test succeeded in ACL "check_recipient"
>>> processing "deny" (TESTSUITE/test-config 49)
>>> message: host is listed in $dnslist_domain with value 127.0.0.3${if def:dnslist_text{\n$dnslist_text}}
>>> check dnslists = rbl3.test.ex=127.0.0.3

->>> DNS list check: rbl3.test.ex=127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl3.test.ex=127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 14.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.2)
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.3

@@ -139,29 +141,30 @@ LOG: 10HmaY-0005vi-00 <= postmaster@??? H=[V4NET.11.12.14] P=smtp S=sss
>>> using ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 36)
>>> check dnslists = rbl4.test.ex&0.0.0.6

->>> DNS list check: rbl4.test.ex&0.0.0.6
+>>> dnslists check: rbl4.test.ex&0.0.0.6
>>> new DNS lookup for 15.12.11.V4NET.rbl4.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 15.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.15 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = rbl4.test.ex&127.0.0.3

->>> DNS list check: rbl4.test.ex&127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex&127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 15.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.15 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex!&0.0.0.7

->>> DNS list check: rbl4.test.ex!&0.0.0.7
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex!&0.0.0.7
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 15.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.15 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 40)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128

->>> DNS list check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
->>> using result of previous DNS lookup
+>>> dnslists check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 15.12.11.V4NET.rbl4.test.ex failed
>>> => that means V4NET.11.12.15 is not listed at rbl4.test.ex
>>> warn: condition test failed in ACL "check_mail"

@@ -172,8 +175,9 @@ LOG: 10HmaY-0005vi-00 <= postmaster@??? H=[V4NET.11.12.14] P=smtp S=sss
>>> processing "warn" (TESTSUITE/test-config 46)
>>> message: X-Warn: host is listed in $dnslist_domain but not =127.0.0.3${if def:dnslist_text{\n $dnslist_text}}
>>> check dnslists = rbl3.test.ex!=127.0.0.3

->>> DNS list check: rbl3.test.ex!=127.0.0.3
+>>> dnslists check: rbl3.test.ex!=127.0.0.3
>>> new DNS lookup for 15.12.11.V4NET.rbl3.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 15.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.3)
>>> => but we are not accepting this block class because
>>> => there was an exclude match for =127.0.0.3

@@ -181,8 +185,8 @@ LOG: 10HmaY-0005vi-00 <= postmaster@??? H=[V4NET.11.12.14] P=smtp S=sss
>>> processing "deny" (TESTSUITE/test-config 49)
>>> message: host is listed in $dnslist_domain with value 127.0.0.3${if def:dnslist_text{\n$dnslist_text}}
>>> check dnslists = rbl3.test.ex=127.0.0.3

->>> DNS list check: rbl3.test.ex=127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl3.test.ex=127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 15.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.3)
>>> => that means V4NET.11.12.15 is listed at rbl3.test.ex
>>> deny: condition test succeeded in ACL "check_recipient"

@@ -199,23 +203,24 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> using ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 36)
>>> check dnslists = rbl4.test.ex&0.0.0.6

->>> DNS list check: rbl4.test.ex&0.0.0.6
+>>> dnslists check: rbl4.test.ex&0.0.0.6
>>> new DNS lookup for 20.12.11.V4NET.rbl4.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 20.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.6)
>>> => that means V4NET.11.12.20 is listed at rbl4.test.ex
>>> warn: condition test succeeded in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = rbl4.test.ex&127.0.0.3

->>> DNS list check: rbl4.test.ex&127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex&127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 20.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.6)
>>> => but we are not accepting this block class because
>>> => there was no match for &127.0.0.3
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex!&0.0.0.7

->>> DNS list check: rbl4.test.ex!&0.0.0.7
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex!&0.0.0.7
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 20.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.6)
>>> => that means V4NET.11.12.20 is listed at rbl4.test.ex
>>> check add_header = DNSlist: $dnslist_domain $dnslist_text $dnslist_matched

@@ -223,8 +228,8 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> warn: condition test succeeded in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 40)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128

->>> DNS list check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
->>> using result of previous DNS lookup
+>>> dnslists check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 20.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.6)
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.128

@@ -243,30 +248,31 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> using ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 36)
>>> check dnslists = rbl4.test.ex&0.0.0.6

->>> DNS list check: rbl4.test.ex&0.0.0.6
+>>> dnslists check: rbl4.test.ex&0.0.0.6
>>> new DNS lookup for 21.12.11.V4NET.rbl4.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 21.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.7)
>>> => that means V4NET.11.12.21 is listed at rbl4.test.ex
>>> warn: condition test succeeded in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = rbl4.test.ex&127.0.0.3

->>> DNS list check: rbl4.test.ex&127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex&127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 21.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.7)
>>> => that means V4NET.11.12.21 is listed at rbl4.test.ex
>>> warn: condition test succeeded in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex!&0.0.0.7

->>> DNS list check: rbl4.test.ex!&0.0.0.7
->>> using result of previous DNS lookup
+>>> dnslists check: rbl4.test.ex!&0.0.0.7
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 21.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.7)
>>> => but we are not accepting this block class because
>>> => there was an exclude match for &0.0.0.7
>>> warn: condition test failed in ACL "check_mail"
>>> processing "warn" (TESTSUITE/test-config 40)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128

->>> DNS list check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
->>> using result of previous DNS lookup
+>>> dnslists check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 21.12.11.V4NET.rbl4.test.ex succeeded (yielding 127.0.0.7)
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.128

@@ -286,12 +292,14 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> using ACL "check_helo"
>>> processing "warn" (TESTSUITE/test-config 21)
>>> check dnslists = rbl2.test.ex!=127.0.0.3 : rbl3.test.ex=127.0.0.3

->>> DNS list check: rbl2.test.ex!=127.0.0.3
+>>> dnslists check: rbl2.test.ex!=127.0.0.3
>>> new DNS lookup for 15.12.11.V4NET.rbl2.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 15.12.11.V4NET.rbl2.test.ex failed
>>> => that means V4NET.11.12.15 is not listed at rbl2.test.ex

->>> DNS list check: rbl3.test.ex=127.0.0.3
+>>> dnslists check: rbl3.test.ex=127.0.0.3
>>> new DNS lookup for 15.12.11.V4NET.rbl3.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 15.12.11.V4NET.rbl3.test.ex succeeded (yielding 127.0.0.3)
>>> => that means V4NET.11.12.15 is listed at rbl3.test.ex
>>> warn: condition test succeeded in ACL "check_helo"

@@ -310,59 +318,60 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> using ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 25)
>>> check dnslists = rbl.test.ex=127.0.0.1

->>> DNS list check: rbl.test.ex=127.0.0.1
+>>> dnslists check: rbl.test.ex=127.0.0.1
>>> new DNS lookup for 2.13.13.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => that means V4NET.13.13.2 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 26)
>>> check dnslists = rbl.test.ex!=127.0.0.1

->>> DNS list check: rbl.test.ex!=127.0.0.1
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex!=127.0.0.1
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => but we are not accepting this block class because
>>> => there was an exclude match for =127.0.0.1
>>> warn: condition test failed in ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 27)
>>> check dnslists = rbl.test.ex!=127.0.0.3

->>> DNS list check: rbl.test.ex!=127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => that means V4NET.13.13.2 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 28)
>>> check dnslists = rbl.test.ex==127.0.0.1

->>> DNS list check: rbl.test.ex==127.0.0.1
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex==127.0.0.1
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => but we are not accepting this block class because
>>> => there was an IP address that did not match for ==127.0.0.1
>>> warn: condition test failed in ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 29)
>>> check dnslists = rbl.test.ex==127.0.0.1,127.0.0.2

->>> DNS list check: rbl.test.ex==127.0.0.1,127.0.0.2
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => that means V4NET.13.13.2 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 30)
>>> check dnslists = rbl.test.ex!==127.0.0.1

->>> DNS list check: rbl.test.ex!==127.0.0.1
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex!==127.0.0.1
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => that means V4NET.13.13.2 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 31)
>>> check dnslists = rbl.test.ex!==127.0.0.3

->>> DNS list check: rbl.test.ex!==127.0.0.3
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex!==127.0.0.3
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => that means V4NET.13.13.2 is listed at rbl.test.ex
>>> warn: condition test succeeded in ACL "check_vrfy"
>>> processing "warn" (TESTSUITE/test-config 32)
>>> check dnslists = rbl.test.ex!==127.0.0.1,127.0.0.2

->>> DNS list check: rbl.test.ex!==127.0.0.1,127.0.0.2
->>> using result of previous DNS lookup
+>>> dnslists check: rbl.test.ex!==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => but we are not accepting this block class because
>>> => there were no IP addresses that did not match for ==127.0.0.1,127.0.0.2

diff --git a/test/stderr/0312 b/test/stderr/0312
index e7bf94f..9b14715 100644
--- a/test/stderr/0312
+++ b/test/stderr/0312
@@ -9,10 +9,11 @@
>>> using ACL "check_rcpt"
>>> processing "deny" (TESTSUITE/test-config 16)
>>> check dnslists = +defer_unknown : test.again.dns

->>> DNS list check: +defer_unknown
->>> DNS list check: test.again.dns
+>>> dnslists check: +defer_unknown
+>>> dnslists check: test.again.dns
>>> new DNS lookup for 1.0.0.V4NET.test.again.dns
>>> 1.0.0.V4NET.test.again.dns in dns_again_means_nonexist? no (option unset)

+>>> dnslists: wrote cache entry, ttl=3600
LOG: DNS list lookup defer (probably timeout) for 1.0.0.V4NET.test.again.dns: returned DEFER
>>> deny: condition test deferred in ACL "check_rcpt"

 LOG: H=[V4NET.0.0.1] F=<userx@x> temporarily rejected RCPT <userx@y>
diff --git a/test/stderr/0386 b/test/stderr/0386
index d2444f5..22a1184 100644
--- a/test/stderr/0386
+++ b/test/stderr/0386
@@ -192,10 +192,11 @@ check acl = TESTSUITE/aux-fixed/0386.acl2
    message: X-Warning: $sender_host_address is listed at $dnslist_domain\nX-Warning: $dnslist_text
  l_message: found in $dnslist_domain: $dnslist_text
  check dnslists = rbl.test.ex 
-DNS list check: rbl.test.ex
+dnslists check: rbl.test.ex
 new DNS lookup for 13.12.11.V4NET.rbl.test.ex
 DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) using fakens
 DNS lookup of 13.12.11.V4NET.rbl.test.ex (A) succeeded
+dnslists: wrote cache entry, ttl=1
 DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
 DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) using fakens
 DNS lookup of 13.12.11.V4NET.rbl.test.ex (TXT) succeeded
@@ -390,8 +391,8 @@ check acl = TESTSUITE/aux-fixed/0386.acl2
    message: X-Warning: $sender_host_address is listed at $dnslist_domain\nX-Warning: $dnslist_text
  l_message: found in $dnslist_domain: $dnslist_text
  check dnslists = rbl.test.ex 
-DNS list check: rbl.test.ex
-using result of previous DNS lookup
+dnslists check: rbl.test.ex
+dnslists: using result of previous lookup
 DNS lookup for 13.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
 => that means V4NET.11.12.13 is listed at rbl.test.ex
  warn: condition test succeeded in ACL "TESTSUITE/aux-fixed/0386.acl2"
diff --git a/test/stderr/0422 b/test/stderr/0422
index ca718a7..1724b24 100644
--- a/test/stderr/0422
+++ b/test/stderr/0422
@@ -10,8 +10,9 @@

>>> processing "deny" (TESTSUITE/test-config 19)
>>> message: dnslist_value is $dnslist_value
>>> check dnslists = rbl.test.ex=127.0.0.2

->>> DNS list check: rbl.test.ex=127.0.0.2
+>>> dnslists check: rbl.test.ex=127.0.0.2
>>> new DNS lookup for 1.13.13.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 1.13.13.V4NET.rbl.test.ex failed
>>> => that means V4NET.13.13.1 is not listed at rbl.test.ex
>>> deny: condition test failed in ACL "connect"

@@ -30,8 +31,9 @@
>>> processing "deny" (TESTSUITE/test-config 19)
>>> message: dnslist_value is $dnslist_value
>>> check dnslists = rbl.test.ex=127.0.0.2

->>> DNS list check: rbl.test.ex=127.0.0.2
+>>> dnslists check: rbl.test.ex=127.0.0.2
>>> new DNS lookup for 2.13.13.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=3600
>>> DNS lookup for 2.13.13.V4NET.rbl.test.ex succeeded (yielding 127.0.0.1, 127.0.0.2)
>>> => that means V4NET.13.13.2 is listed at rbl.test.ex
>>> deny: condition test succeeded in ACL "connect"

diff --git a/test/stderr/2201 b/test/stderr/2201
index ac812c1..ff018f3 100644
--- a/test/stderr/2201
+++ b/test/stderr/2201
@@ -203,16 +203,18 @@ ppppp 1 SMTP accept process running
ppppp Listening...
ppppp Process ppppp is handling incoming connection from [127.0.0.1]
ppppp Process ppppp is ready for new message
-ppppp DNS list check: rbl.test.ex/V4NET.11.12.14
+ppppp dnslists check: rbl.test.ex/V4NET.11.12.14
ppppp new DNS lookup for 14.12.11.V4NET.rbl.test.ex
+ppppp dnslists: wrote cache entry, ttl=2
ppppp DNS lookup for 14.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
ppppp => that means V4NET.11.12.14 is listed at rbl.test.ex
-ppppp DNS list check: rbl.test.ex/V4NET.11.12.14
-ppppp using result of previous DNS lookup
+ppppp dnslists check: rbl.test.ex/V4NET.11.12.14
+ppppp dnslists: using result of previous lookup
ppppp DNS lookup for 14.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
ppppp => that means V4NET.11.12.14 is listed at rbl.test.ex
-ppppp DNS list check: rbl.test.ex/V4NET.11.12.14
+ppppp dnslists check: rbl.test.ex/V4NET.11.12.14
ppppp cached data found but past valid time; new DNS lookup for 14.12.11.V4NET.rbl.test.ex
+ppppp dnslists: wrote cache entry, ttl=2
ppppp DNS lookup for 14.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
ppppp => that means V4NET.11.12.14 is listed at rbl.test.ex
ppppp LOG: MAIN
diff --git a/test/stderr/3408 b/test/stderr/3408
index fc7d779..137e2b8 100644
--- a/test/stderr/3408
+++ b/test/stderr/3408
@@ -35,8 +35,9 @@
>>> message: host is listed in $dnslist_domain
>>> check !authenticated = *
>>> check dnslists = rbl.test.ex

->>> DNS list check: rbl.test.ex
+>>> dnslists check: rbl.test.ex
>>> new DNS lookup for 14.12.11.V4NET.rbl.test.ex

+>>> dnslists: wrote cache entry, ttl=2
>>> DNS lookup for 14.12.11.V4NET.rbl.test.ex succeeded (yielding 127.0.0.2)
>>> => that means V4NET.11.12.14 is listed at rbl.test.ex
>>> deny: condition test succeeded in ACL "check_recipient"

diff --git a/test/stdout/0044 b/test/stdout/0044
index 1840508..e7c1f14 100644
--- a/test/stdout/0044
+++ b/test/stdout/0044
@@ -12,6 +12,7 @@
250 OK
250 Accepted
550 host is listed in rbl.test.ex
+550 host is listed in rbl.test.ex
354 Enter message, ending with "." on a line by itself
250 OK id=10HmaX-0005vi-00

@@ -37,3 +38,19 @@
**** SMTP testing: that is not a real message id!

221 the.local.host.name closing connection
+
+**** SMTP testing session as if from host V4NET.99.99.99
+**** but without any ident (RFC 1413) callback.
+**** This is not for real!
+
+220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250-the.local.host.name Hello exim.test.ex [V4NET.99.99.99]
+250-SIZE 52428800
+250-8BITMIME
+250-PIPELINING
+250 HELP
+250 OK
+550-Verification failed for <postmaster@???>
+550-Unrouteable address
+550 Sender verify failed
+421 the.local.host.name lost input connection