+ yield = FAIL;
+ goto out;
+ }
+ }
+
+ /* 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)
+ {
+ yield = FAIL;
+ goto out;