[exim-cvs] dnslists: hardwired return value check. Bug 2631

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Exim Git Commits Mailing List
Ημερομηνία:  
Προς: exim-cvs
Αντικείμενο: [exim-cvs] dnslists: hardwired return value check. Bug 2631
Gitweb: https://git.exim.org/exim.git/commitdiff/cebf4027931177cc70106a84e19705f2085a09f5
Commit:     cebf4027931177cc70106a84e19705f2085a09f5
Parent:     d4095f83496094d7d8649cc412536f69d1cfcb6a
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Mon Aug 10 22:28:48 2020 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Mon Aug 10 23:45:11 2020 +0100


    dnslists: hardwired return value check.  Bug 2631
---
 doc/doc-txt/ChangeLog        |   4 +
 src/src/dnsbl.c              |  33 ++-
 test/confs/0139              |   1 +
 test/confs/0509              |   4 +-
 test/dnszones-src/db.test.ex |  11 +
 test/log/0509                |   3 +-
 test/scripts/0000-Basic/0139 |  25 ++
 test/stderr/0139             | 597 ++++++++++++++++++++++++++++++++++++++++---
 test/stdout/0139             |  48 ++++
 9 files changed, 689 insertions(+), 37 deletions(-)


diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 3b1081f..d56ff24 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -96,6 +96,10 @@ JH/19 SPF: change the Authentication-Results expansion component to give
       smtp.helo when the sender domain is empty.  Previously it gave
       "smtp.mailfrom=<>"


+JH/20 Bug 2631: ACL dnslist conditions now ignore and log any lookups returns
+      not in 127.0.0.0/8 to help in spotting list domains taken over by a
+      domain-parking registrar.
+


 Exim version 4.94
 -----------------
diff --git a/src/src/dnsbl.c b/src/src/dnsbl.c
index d3afd5c..5c6a76d 100644
--- a/src/src/dnsbl.c
+++ b/src/src/dnsbl.c
@@ -247,7 +247,15 @@ if (cb->rc == DNS_SUCCEED)
         ignore IPv6 addresses. The default mask is 0, which always matches.
         We change this only for IPv4 addresses in the list. */


-        if (host_aton(da->address, address) == 1) mask = address[0];
+        if (host_aton(da->address, address) == 1)
+      if ((address[0] & 0xff000000) != 0x7f000000)    /* 127.0.0.0/8 */
+        log_write(0, LOG_MAIN,
+          "DNS list lookup for %s at %s returned %s;"
+          " not in 127.0/8 and discarded",
+          keydomain, domain, da->address);
+
+      else
+        mask = address[0];


         /* Scan the returned addresses, skipping any that are IPv6 */


@@ -301,6 +309,29 @@ if (cb->rc == DNS_SUCCEED)
       }
     }


+  /* No address list check; discard any illegal returns and give up if
+  none remain. */
+
+  else
+    {
+    BOOL ok = FALSE;
+    for (da = cb->rhs; da; da = da->next)
+      {
+      int address[4];
+
+      if (  host_aton(da->address, address) == 1        /* ipv4 */
+     && (address[0] & 0xff000000) == 0x7f000000    /* 127.0.0.0/8 */
+     )
+    ok = TRUE;
+      else
+    log_write(0, LOG_MAIN,
+        "DNS list lookup for %s at %s returned %s;"
+        " not in 127.0/8 and discarded",
+        keydomain, domain, da->address);
+      }
+    if (!ok) return FAIL;
+    }
+
   /* Either there was no IP list, or the record matched, implying that the
   domain is on the list. We now want to find a corresponding TXT record. If an
   alternate domain is specified for the TXT record, call this function
diff --git a/test/confs/0139 b/test/confs/0139
index 13a90df..5aaa611 100644
--- a/test/confs/0139
+++ b/test/confs/0139
@@ -30,6 +30,7 @@ check_vrfy:
   warn    dnslists = rbl.test.ex!==127.0.0.1
   warn    dnslists = rbl.test.ex!==127.0.0.3
   warn    dnslists = rbl.test.ex!==127.0.0.1,127.0.0.2
+  warn    dnslists = rbl.test.ex
   accept


 check_mail:
diff --git a/test/confs/0509 b/test/confs/0509
index bc3dc50..9a4f185 100644
--- a/test/confs/0509
+++ b/test/confs/0509
@@ -18,7 +18,7 @@ check_connect:
    warn  dnslists = rbl.test.ex/<;1.2.3.4;V4NET.11.12.13
          logwrite = rbl.test.ex/<;1.2.3.4;V4NET.11.12.13


-   warn  dnslists = test.ex/a.b.c.d::ten-1
-         logwrite = test.ex/a.b.c.d::ten-1
+   warn  dnslists = test.ex/a.b.c.d::ten-1::localhost
+         logwrite = test.ex/a.b.c.d::ten-1::localhost


 # End
diff --git a/test/dnszones-src/db.test.ex b/test/dnszones-src/db.test.ex
index de710dc..9b6684a 100644
--- a/test/dnszones-src/db.test.ex
+++ b/test/dnszones-src/db.test.ex
@@ -201,6 +201,17 @@ TTL=2 14.12.11.V4NET.rbl A 127.0.0.2
 2.13.13.V4NET.rbl     A   127.0.0.1
                       A   127.0.0.2


+; Foolish return values outside 127.0/8
+
+100.13.13.V4NET.rbl    A   0.0.0.0
+101.13.13.V4NET.rbl    A   126.255.255.255
+102.13.13.V4NET.rbl    A   128.0.0.0
+103.13.13.V4NET.rbl    A   255.255.255.255
+104.13.13.V4NET.rbl    A   255.255.255.255
+                       A   127.0.0.0
+105.13.13.V4NET.rbl    A   255.255.255.255
+                       A   255.255.255.254
+
 ; -------- Testing MX records --------


 mxcased      MX  5  ten-99.TEST.EX.
diff --git a/test/log/0509 b/test/log/0509
index c8bb88e..f69f828 100644
--- a/test/log/0509
+++ b/test/log/0509
@@ -1,3 +1,4 @@
 1999-03-02 09:44:33 rbl.test.ex/<;1.2.3.4;V4NET.11.12.13
-1999-03-02 09:44:33 test.ex/a.b.c.d::ten-1
+1999-03-02 09:44:33 DNS list lookup for ten-1 at test.ex returned V4NET.0.0.1; not in 127.0/8 and discarded
+1999-03-02 09:44:33 test.ex/a.b.c.d::ten-1::localhost
 1999-03-02 09:44:33 U=CALLER rejected connection in "connect" ACL
diff --git a/test/scripts/0000-Basic/0139 b/test/scripts/0000-Basic/0139
index 0224bd9..d5ebc99 100644
--- a/test/scripts/0000-Basic/0139
+++ b/test/scripts/0000-Basic/0139
@@ -40,4 +40,29 @@ exim -bh V4NET.13.13.2
 vrfy a@b
 quit
 ****
+#
+exim -bh V4NET.13.13.100
+vrfy a@b
+quit
+****
+exim -bh V4NET.13.13.101
+vrfy a@b
+quit
+****
+exim -bh V4NET.13.13.102
+vrfy a@b
+quit
+****
+exim -bh V4NET.13.13.103
+vrfy a@b
+quit
+****
+exim -bh V4NET.13.13.104
+vrfy a@b
+quit
+****
+exim -bh V4NET.13.13.105
+vrfy a@b
+quit
+****
 no_msglog_check
diff --git a/test/stderr/0139 b/test/stderr/0139
index 9b01d9d..eb73157 100644
--- a/test/stderr/0139
+++ b/test/stderr/0139
@@ -7,7 +7,7 @@

>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
>>> using ACL "check_mail"

->>> processing "warn" (TESTSUITE/test-config 36)
+>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = 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

@@ -15,32 +15,32 @@
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex&127.0.0.3
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 39)
>>> check dnslists = rbl4.test.ex!&0.0.0.7
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 41)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128
>>> 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"

->>> processing "accept" (TESTSUITE/test-config 42)
+>>> processing "accept" (TESTSUITE/test-config 43)
>>> accept: condition test succeeded in ACL "check_mail"
>>> end of ACL "check_mail": ACCEPT
>>> using ACL "check_recipient"

->>> processing "warn" (TESTSUITE/test-config 46)
+>>> processing "warn" (TESTSUITE/test-config 47)
>>> 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
>>> dnslists check: rbl3.test.ex!=127.0.0.3

@@ -49,7 +49,7 @@
>>> 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)
+>>> processing "deny" (TESTSUITE/test-config 50)
>>> 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
>>> dnslists check: rbl3.test.ex=127.0.0.3

@@ -58,7 +58,7 @@
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.3
>>> deny: condition test failed in ACL "check_recipient"

->>> processing "require" (TESTSUITE/test-config 51)
+>>> processing "require" (TESTSUITE/test-config 52)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing postmaster@???

@@ -73,7 +73,7 @@
>>> routed by localuser router
>>> ----------- end verify ------------
>>> require: condition test succeeded in ACL "check_recipient"

->>> processing "deny" (TESTSUITE/test-config 52)
+>>> processing "deny" (TESTSUITE/test-config 53)
>>> message: unrouteable address
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -85,14 +85,14 @@
>>> routed by localuser router
>>> ----------- end verify ------------
>>> deny: condition test failed in ACL "check_recipient"

->>> processing "accept" (TESTSUITE/test-config 54)
+>>> processing "accept" (TESTSUITE/test-config 55)
>>> check domains = +local_domains
>>> exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
>>> exim.test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL "check_recipient"
>>> end of ACL "check_recipient": ACCEPT
>>> using ACL "check_recipient"

->>> processing "warn" (TESTSUITE/test-config 46)
+>>> processing "warn" (TESTSUITE/test-config 47)
>>> 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
>>> dnslists check: rbl3.test.ex!=127.0.0.3

@@ -100,7 +100,7 @@
>>> 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)
+>>> processing "deny" (TESTSUITE/test-config 50)
>>> 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
>>> dnslists check: rbl3.test.ex=127.0.0.3

@@ -109,11 +109,11 @@
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.3
>>> deny: condition test failed in ACL "check_recipient"

->>> processing "require" (TESTSUITE/test-config 51)
+>>> processing "require" (TESTSUITE/test-config 52)
>>> check verify = sender
>>> using cached sender verify result
>>> require: condition test succeeded in ACL "check_recipient"

->>> processing "deny" (TESTSUITE/test-config 52)
+>>> processing "deny" (TESTSUITE/test-config 53)
>>> message: unrouteable address
>>> check !verify = recipient
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -122,7 +122,7 @@
>>> routed by system_aliases router
>>> ----------- end verify ------------
>>> deny: condition test failed in ACL "check_recipient"

->>> processing "accept" (TESTSUITE/test-config 54)
+>>> processing "accept" (TESTSUITE/test-config 55)
>>> check domains = +local_domains
>>> exim.test.ex in "exim.test.ex"? yes (matched "exim.test.ex")
>>> exim.test.ex in "+local_domains"? yes (matched "+local_domains")

@@ -139,7 +139,7 @@ LOG: 10HmaY-0005vi-00 <= postmaster@??? H=[V4NET.11.12.14] P=smtp S=sss
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
>>> using ACL "check_mail"

->>> processing "warn" (TESTSUITE/test-config 36)
+>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = 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

@@ -147,32 +147,32 @@ LOG: 10HmaY-0005vi-00 <= postmaster@??? H=[V4NET.11.12.14] P=smtp S=sss
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex&127.0.0.3
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 39)
>>> check dnslists = rbl4.test.ex!&0.0.0.7
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 41)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128
>>> 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"

->>> processing "accept" (TESTSUITE/test-config 42)
+>>> processing "accept" (TESTSUITE/test-config 43)
>>> accept: condition test succeeded in ACL "check_mail"
>>> end of ACL "check_mail": ACCEPT
>>> using ACL "check_recipient"

->>> processing "warn" (TESTSUITE/test-config 46)
+>>> processing "warn" (TESTSUITE/test-config 47)
>>> 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
>>> dnslists check: rbl3.test.ex!=127.0.0.3

@@ -182,7 +182,7 @@ LOG: 10HmaY-0005vi-00 <= postmaster@??? H=[V4NET.11.12.14] P=smtp S=sss
>>> => but we are not accepting this block class because
>>> => there was an exclude match for =127.0.0.3
>>> warn: condition test failed in ACL "check_recipient"

->>> processing "deny" (TESTSUITE/test-config 49)
+>>> processing "deny" (TESTSUITE/test-config 50)
>>> 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
>>> dnslists check: rbl3.test.ex=127.0.0.3

@@ -201,7 +201,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
>>> using ACL "check_mail"

->>> processing "warn" (TESTSUITE/test-config 36)
+>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = 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

@@ -209,7 +209,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex&127.0.0.3
>>> dnslists check: rbl4.test.ex&127.0.0.3
>>> dnslists: using result of previous lookup

@@ -217,7 +217,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> => 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)
+>>> processing "warn" (TESTSUITE/test-config 39)
>>> check dnslists = rbl4.test.ex!&0.0.0.7
>>> dnslists check: rbl4.test.ex!&0.0.0.7
>>> dnslists: using result of previous lookup

@@ -226,7 +226,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
 >>> check add_header = DNSlist: $dnslist_domain $dnslist_text $dnslist_matched
 >>>                  = DNSlist: rbl4.test.ex  V4NET.11.12.20
 >>> warn: condition test succeeded in ACL "check_mail"

->>> processing "warn" (TESTSUITE/test-config 40)
+>>> processing "warn" (TESTSUITE/test-config 41)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128
>>> dnslists check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
>>> dnslists: using result of previous lookup

@@ -234,7 +234,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.128
>>> warn: condition test failed in ACL "check_mail"

->>> processing "accept" (TESTSUITE/test-config 42)
+>>> processing "accept" (TESTSUITE/test-config 43)
>>> accept: condition test succeeded in ACL "check_mail"
>>> end of ACL "check_mail": ACCEPT
>>> host in hosts_connection_nolog? no (option unset)

@@ -246,7 +246,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
>>> using ACL "check_mail"

->>> processing "warn" (TESTSUITE/test-config 36)
+>>> processing "warn" (TESTSUITE/test-config 37)
>>> check dnslists = 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

@@ -254,14 +254,14 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 38)
>>> check dnslists = rbl4.test.ex&127.0.0.3
>>> 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)
+>>> processing "warn" (TESTSUITE/test-config 39)
>>> check dnslists = rbl4.test.ex!&0.0.0.7
>>> dnslists check: rbl4.test.ex!&0.0.0.7
>>> dnslists: using result of previous lookup

@@ -269,7 +269,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> => 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)
+>>> processing "warn" (TESTSUITE/test-config 41)
>>> check dnslists = rbl5.test.ex,rbl4.test.ex=127.0.0.128
>>> dnslists check: rbl5.test.ex,rbl4.test.ex=127.0.0.128
>>> dnslists: using result of previous lookup

@@ -277,7 +277,7 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> => but we are not accepting this block class because
>>> => there was no match for =127.0.0.128
>>> warn: condition test failed in ACL "check_mail"

->>> processing "accept" (TESTSUITE/test-config 42)
+>>> processing "accept" (TESTSUITE/test-config 43)
>>> accept: condition test succeeded in ACL "check_mail"
>>> end of ACL "check_mail": ACCEPT
>>> host in hosts_connection_nolog? no (option unset)

@@ -376,7 +376,14 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> => 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
>>> warn: condition test failed in ACL "check_vrfy"

->>> processing "accept" (TESTSUITE/test-config 33)
+>>> processing "warn" (TESTSUITE/test-config 33)
+>>> check dnslists = rbl.test.ex
+>>> dnslists check: rbl.test.ex
+>>> 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 "accept" (TESTSUITE/test-config 34)
>>> accept: condition test succeeded in ACL "check_vrfy"
>>> end of ACL "check_vrfy": ACCEPT
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

@@ -386,3 +393,527 @@ LOG: H=[V4NET.11.12.15] F=<postmaster@???> rejected RCPT <userx@???
>>> a in "userx"? no (end of list)
>>> no more routers

LOG: VRFY failed for a@b H=[V4NET.13.13.2]
+>>> 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)
+>>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>> using ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 25)
+>>> check dnslists = rbl.test.ex=127.0.0.1
+>>> dnslists check: rbl.test.ex=127.0.0.1
+>>> new DNS lookup for 100.13.13.V4NET.rbl.test.ex
+>>> dnslists: wrote cache entry, ttl=3600
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => but we are not accepting this block class because
+>>> => there was no match for =127.0.0.1
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 26)
+>>> check dnslists = rbl.test.ex!=127.0.0.1
+>>> dnslists check: rbl.test.ex!=127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => that means V4NET.13.13.100 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 27)
+>>> check dnslists = rbl.test.ex!=127.0.0.3
+>>> dnslists check: rbl.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => that means V4NET.13.13.100 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
+>>> dnslists check: rbl.test.ex==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => 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
+>>> dnslists check: rbl.test.ex==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => but we are not accepting this block class because
+>>> => there was an IP address that did not match for ==127.0.0.1,127.0.0.2
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 30)
+>>> check dnslists = rbl.test.ex!==127.0.0.1
+>>> dnslists check: rbl.test.ex!==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => that means V4NET.13.13.100 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
+>>> dnslists check: rbl.test.ex!==127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => that means V4NET.13.13.100 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
+>>> dnslists check: rbl.test.ex!==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+>>> => that means V4NET.13.13.100 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 33)
+>>> check dnslists = rbl.test.ex
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 100.13.13.V4NET.rbl.test.ex succeeded (yielding 0.0.0.0)
+LOG: DNS list lookup for V4NET.13.13.100 at rbl.test.ex returned 0.0.0.0; not in 127.0/8 and discarded
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL "check_vrfy"
+>>> end of ACL "check_vrfy": ACCEPT
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing a@b
+>>> calling system_aliases router
+>>> system_aliases router declined for a@b
+>>> a in "userx"? no (end of list)
+>>> no more routers
+LOG: VRFY failed for a@b H=[V4NET.13.13.100]
+>>> 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)
+>>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>> using ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 25)
+>>> check dnslists = rbl.test.ex=127.0.0.1
+>>> dnslists check: rbl.test.ex=127.0.0.1
+>>> new DNS lookup for 101.13.13.V4NET.rbl.test.ex
+>>> dnslists: wrote cache entry, ttl=3600
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => but we are not accepting this block class because
+>>> => there was no match for =127.0.0.1
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 26)
+>>> check dnslists = rbl.test.ex!=127.0.0.1
+>>> dnslists check: rbl.test.ex!=127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => that means V4NET.13.13.101 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 27)
+>>> check dnslists = rbl.test.ex!=127.0.0.3
+>>> dnslists check: rbl.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => that means V4NET.13.13.101 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
+>>> dnslists check: rbl.test.ex==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => 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
+>>> dnslists check: rbl.test.ex==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => but we are not accepting this block class because
+>>> => there was an IP address that did not match for ==127.0.0.1,127.0.0.2
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 30)
+>>> check dnslists = rbl.test.ex!==127.0.0.1
+>>> dnslists check: rbl.test.ex!==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => that means V4NET.13.13.101 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
+>>> dnslists check: rbl.test.ex!==127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => that means V4NET.13.13.101 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
+>>> dnslists check: rbl.test.ex!==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+>>> => that means V4NET.13.13.101 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 33)
+>>> check dnslists = rbl.test.ex
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 101.13.13.V4NET.rbl.test.ex succeeded (yielding 126.255.255.255)
+LOG: DNS list lookup for V4NET.13.13.101 at rbl.test.ex returned 126.255.255.255; not in 127.0/8 and discarded
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL "check_vrfy"
+>>> end of ACL "check_vrfy": ACCEPT
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing a@b
+>>> calling system_aliases router
+>>> system_aliases router declined for a@b
+>>> a in "userx"? no (end of list)
+>>> no more routers
+LOG: VRFY failed for a@b H=[V4NET.13.13.101]
+>>> 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)
+>>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>> using ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 25)
+>>> check dnslists = rbl.test.ex=127.0.0.1
+>>> dnslists check: rbl.test.ex=127.0.0.1
+>>> new DNS lookup for 102.13.13.V4NET.rbl.test.ex
+>>> dnslists: wrote cache entry, ttl=3600
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => but we are not accepting this block class because
+>>> => there was no match for =127.0.0.1
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 26)
+>>> check dnslists = rbl.test.ex!=127.0.0.1
+>>> dnslists check: rbl.test.ex!=127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => that means V4NET.13.13.102 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 27)
+>>> check dnslists = rbl.test.ex!=127.0.0.3
+>>> dnslists check: rbl.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => that means V4NET.13.13.102 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
+>>> dnslists check: rbl.test.ex==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => 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
+>>> dnslists check: rbl.test.ex==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => but we are not accepting this block class because
+>>> => there was an IP address that did not match for ==127.0.0.1,127.0.0.2
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 30)
+>>> check dnslists = rbl.test.ex!==127.0.0.1
+>>> dnslists check: rbl.test.ex!==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => that means V4NET.13.13.102 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
+>>> dnslists check: rbl.test.ex!==127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => that means V4NET.13.13.102 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
+>>> dnslists check: rbl.test.ex!==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+>>> => that means V4NET.13.13.102 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 33)
+>>> check dnslists = rbl.test.ex
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 102.13.13.V4NET.rbl.test.ex succeeded (yielding 128.0.0.0)
+LOG: DNS list lookup for V4NET.13.13.102 at rbl.test.ex returned 128.0.0.0; not in 127.0/8 and discarded
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL "check_vrfy"
+>>> end of ACL "check_vrfy": ACCEPT
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing a@b
+>>> calling system_aliases router
+>>> system_aliases router declined for a@b
+>>> a in "userx"? no (end of list)
+>>> no more routers
+LOG: VRFY failed for a@b H=[V4NET.13.13.102]
+>>> 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)
+>>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>> using ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 25)
+>>> check dnslists = rbl.test.ex=127.0.0.1
+>>> dnslists check: rbl.test.ex=127.0.0.1
+>>> new DNS lookup for 103.13.13.V4NET.rbl.test.ex
+>>> dnslists: wrote cache entry, ttl=3600
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => but we are not accepting this block class because
+>>> => there was no match for =127.0.0.1
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 26)
+>>> check dnslists = rbl.test.ex!=127.0.0.1
+>>> dnslists check: rbl.test.ex!=127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => that means V4NET.13.13.103 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 27)
+>>> check dnslists = rbl.test.ex!=127.0.0.3
+>>> dnslists check: rbl.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => that means V4NET.13.13.103 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
+>>> dnslists check: rbl.test.ex==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => 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
+>>> dnslists check: rbl.test.ex==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => but we are not accepting this block class because
+>>> => there was an IP address that did not match for ==127.0.0.1,127.0.0.2
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 30)
+>>> check dnslists = rbl.test.ex!==127.0.0.1
+>>> dnslists check: rbl.test.ex!==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => that means V4NET.13.13.103 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
+>>> dnslists check: rbl.test.ex!==127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => that means V4NET.13.13.103 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
+>>> dnslists check: rbl.test.ex!==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+>>> => that means V4NET.13.13.103 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 33)
+>>> check dnslists = rbl.test.ex
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 103.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255)
+LOG: DNS list lookup for V4NET.13.13.103 at rbl.test.ex returned 255.255.255.255; not in 127.0/8 and discarded
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL "check_vrfy"
+>>> end of ACL "check_vrfy": ACCEPT
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing a@b
+>>> calling system_aliases router
+>>> system_aliases router declined for a@b
+>>> a in "userx"? no (end of list)
+>>> no more routers
+LOG: VRFY failed for a@b H=[V4NET.13.13.103]
+>>> 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)
+>>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>> using ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 25)
+>>> check dnslists = rbl.test.ex=127.0.0.1
+>>> dnslists check: rbl.test.ex=127.0.0.1
+>>> new DNS lookup for 104.13.13.V4NET.rbl.test.ex
+>>> dnslists: wrote cache entry, ttl=3600
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => but we are not accepting this block class because
+>>> => there was no match for =127.0.0.1
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 26)
+>>> check dnslists = rbl.test.ex!=127.0.0.1
+>>> dnslists check: rbl.test.ex!=127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => that means V4NET.13.13.104 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 27)
+>>> check dnslists = rbl.test.ex!=127.0.0.3
+>>> dnslists check: rbl.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => that means V4NET.13.13.104 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
+>>> dnslists check: rbl.test.ex==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => 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
+>>> dnslists check: rbl.test.ex==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => but we are not accepting this block class because
+>>> => there was an IP address that did not match for ==127.0.0.1,127.0.0.2
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 30)
+>>> check dnslists = rbl.test.ex!==127.0.0.1
+>>> dnslists check: rbl.test.ex!==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => that means V4NET.13.13.104 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
+>>> dnslists check: rbl.test.ex!==127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => that means V4NET.13.13.104 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
+>>> dnslists check: rbl.test.ex!==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+>>> => that means V4NET.13.13.104 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 33)
+>>> check dnslists = rbl.test.ex
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 104.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 127.0.0.0)
+LOG: DNS list lookup for V4NET.13.13.104 at rbl.test.ex returned 255.255.255.255; not in 127.0/8 and discarded
+>>> => that means V4NET.13.13.104 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL "check_vrfy"
+>>> end of ACL "check_vrfy": ACCEPT
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing a@b
+>>> calling system_aliases router
+>>> system_aliases router declined for a@b
+>>> a in "userx"? no (end of list)
+>>> no more routers
+LOG: VRFY failed for a@b H=[V4NET.13.13.104]
+>>> 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)
+>>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>> using ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 25)
+>>> check dnslists = rbl.test.ex=127.0.0.1
+>>> dnslists check: rbl.test.ex=127.0.0.1
+>>> new DNS lookup for 105.13.13.V4NET.rbl.test.ex
+>>> dnslists: wrote cache entry, ttl=3600
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => but we are not accepting this block class because
+>>> => there was no match for =127.0.0.1
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 26)
+>>> check dnslists = rbl.test.ex!=127.0.0.1
+>>> dnslists check: rbl.test.ex!=127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => that means V4NET.13.13.105 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 27)
+>>> check dnslists = rbl.test.ex!=127.0.0.3
+>>> dnslists check: rbl.test.ex!=127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => that means V4NET.13.13.105 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
+>>> dnslists check: rbl.test.ex==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => 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
+>>> dnslists check: rbl.test.ex==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => but we are not accepting this block class because
+>>> => there was an IP address that did not match for ==127.0.0.1,127.0.0.2
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 30)
+>>> check dnslists = rbl.test.ex!==127.0.0.1
+>>> dnslists check: rbl.test.ex!==127.0.0.1
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => that means V4NET.13.13.105 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
+>>> dnslists check: rbl.test.ex!==127.0.0.3
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => that means V4NET.13.13.105 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
+>>> dnslists check: rbl.test.ex!==127.0.0.1,127.0.0.2
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+>>> => that means V4NET.13.13.105 is listed at rbl.test.ex
+>>> warn: condition test succeeded in ACL "check_vrfy"
+>>> processing "warn" (TESTSUITE/test-config 33)
+>>> check dnslists = rbl.test.ex
+>>> dnslists check: rbl.test.ex
+>>> dnslists: using result of previous lookup
+>>> DNS lookup for 105.13.13.V4NET.rbl.test.ex succeeded (yielding 255.255.255.255, 255.255.255.254)
+LOG: DNS list lookup for V4NET.13.13.105 at rbl.test.ex returned 255.255.255.255; not in 127.0/8 and discarded
+LOG: DNS list lookup for V4NET.13.13.105 at rbl.test.ex returned 255.255.255.254; not in 127.0/8 and discarded
+>>> warn: condition test failed in ACL "check_vrfy"
+>>> processing "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL "check_vrfy"
+>>> end of ACL "check_vrfy": ACCEPT
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing a@b
+>>> calling system_aliases router
+>>> system_aliases router declined for a@b
+>>> a in "userx"? no (end of list)
+>>> no more routers
+LOG: VRFY failed for a@b H=[V4NET.13.13.105]
diff --git a/test/stdout/0139 b/test/stdout/0139
index e19fbb7..1276495 100644
--- a/test/stdout/0139
+++ b/test/stdout/0139
@@ -71,3 +71,51 @@
220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
550 <a@b> Unrouteable address
221 the.local.host.name closing connection
+
+**** SMTP testing session as if from host V4NET.13.13.100
+**** 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
+550 <a@b> Unrouteable address
+221 the.local.host.name closing connection
+
+**** SMTP testing session as if from host V4NET.13.13.101
+**** 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
+550 <a@b> Unrouteable address
+221 the.local.host.name closing connection
+
+**** SMTP testing session as if from host V4NET.13.13.102
+**** 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
+550 <a@b> Unrouteable address
+221 the.local.host.name closing connection
+
+**** SMTP testing session as if from host V4NET.13.13.103
+**** 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
+550 <a@b> Unrouteable address
+221 the.local.host.name closing connection
+
+**** SMTP testing session as if from host V4NET.13.13.104
+**** 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
+550 <a@b> Unrouteable address
+221 the.local.host.name closing connection
+
+**** SMTP testing session as if from host V4NET.13.13.105
+**** 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
+550 <a@b> Unrouteable address
+221 the.local.host.name closing connection