diff -Nur -x '*.orig' -x '*.rej' qpsmtpd-0.31-dev/plugins/rhsbl mezzanine_patched_qpsmtpd-0.31-dev/plugins/rhsbl --- qpsmtpd-0.31-dev/plugins/rhsbl 2005-07-07 14:17:39.000000000 +1000 +++ mezzanine_patched_qpsmtpd-0.31-dev/plugins/rhsbl 2006-01-31 12:28:10.110140228 +1100 @@ -18,9 +18,14 @@ #push(@hosts, $helo) if $helo && $helo ne $sender->host; for my $host (@hosts) { for my $rhsbl (keys %rhsbl_zones) { + if (defined($rhsbl_zones{$rhsbl})) { $self->log(LOGDEBUG, "Checking $host.$rhsbl for A record in the background"); $sel->add($res->bgsend("$host.$rhsbl")); - $rhsbl_zones_map{"$host.$rhsbl"} = $rhsbl_zones{$rhsbl}; + } else { + $self->log(LOGDEBUG, "Checking $host.$rhsbl for TXT record in the background"); + $sel->add($res->bgsend("$host.$rhsbl", "TXT")); + } + $rhsbl_zones_map{"$host.$rhsbl"} = $rhsbl_zones{$rhsbl}; } } @@ -80,6 +85,10 @@ $result = $rr->name; $self->log(LOGDEBUG, "A record found for $result with IP " . $rr->address); last; + } elsif ($rr->type eq 'TXT') { + $result = $rr->txtdata; + $self->log(LOGDEBUG, "TXT record found: " . $rr->txtdata); + last; } } } else {