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