You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2012/07/26 15:29:26 UTC
svn commit: r1365983 - in /spamassassin/trunk/lib/Mail/SpamAssassin:
DnsResolver.pm Plugin/URIDNSBL.pm
Author: mmartinec
Date: Thu Jul 26 13:29:26 2012
New Revision: 1365983
URL: http://svn.apache.org/viewvc?rev=1365983&view=rev
Log:
Bug 6819: Avoiding some DNS lookup failure warnings
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm?rev=1365983&r1=1365982&r2=1365983&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Thu Jul 26 13:29:26 2012
@@ -463,14 +463,17 @@ sub new_dns_packet {
$packet = Net::DNS::Packet->new($host, $type, $class);
# a bit noisy, so commented by default...
- #dbg("dns: new DNS packet time=%s host=%s type=%s id=%s",
+ #dbg("dns: new DNS packet time=%.3f host=%s type=%s id=%s",
# time, $host, $type, $packet->id);
1;
} or do {
- my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat;
# this can happen if Net::DNS isn't available -- but in this
# case this function should never be called!
- warn "dns: cannot create Net::DNS::Packet, but new_dns_packet() was called: $eval_stat";
+ # another possible failure reason: "unexpected null domain label"
+ my $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat;
+ warn sprintf("dns: new_dns_packet (host=%s type=%s class=%s id=%s): ".
+ "cannot create Net::DNS::Packet: %s",
+ $host, $type, $class, $packet->id, $eval_stat);
};
return $packet;
@@ -549,6 +552,7 @@ sub bgsend {
$self->{send_timed_out} = 0;
my $pkt = $self->new_dns_packet($host, $type, $class);
+ return if !$pkt; # just bail out, new_dns_packet already reported a failure
my @ns_addr_port = $self->available_nameservers();
dbg("dns: bgsend, DNS servers: %s", join(', ',@ns_addr_port));
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm?rev=1365983&r1=1365982&r2=1365983&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm Thu Jul 26 13:29:26 2012
@@ -995,12 +995,19 @@ sub complete_a_lookup {
my ($self, $scanner, $ent, $hname) = @_;
my $packet = $ent->{response_packet};
- my @answer = !defined $packet ? () : $packet->answer;
+ my @answer;
+ @answer = $packet->answer if $packet;
my $j = 0;
foreach my $rr (@answer) {
$j++;
my $str = $rr->string;
- dbg("uridnsbl: got($j) A for $hname: $str");
+ if (!defined $hname) {
+ warn "complete_a_lookup-1: $j, (hname is undef), $str";
+ } elsif (!defined $str) {
+ warn "complete_a_lookup-2: $j, $hname, (str is undef)";
+ next;
+ }
+ dbg("uridnsbl: complete_a_lookup got(%d) A for %s: %s", $j,$hname,$str);
local $1;
if ($str =~ /IN\s+A\s+(\S+)/) {
@@ -1168,7 +1175,14 @@ sub completed_lookup_callback {
my ($self, $scanner, $ent) = @_;
my $type = $ent->{type};
my $key = $ent->{key};
- local $1; $key =~ /:(\S+?)$/; my $val = $1;
+ my $val = $key; $val =~ s/^[^:]*://s;
+
+ # key could be: "A:link.software-dispa tch.intel.com"
+ # "A:reba b324.storedrugs.ru"
+ # <a href="http://Reba B324.storedrugs.ru/item/...>
+ #
+ dbg("uridnsbl: completed_lookup_callback type=%s, key=%s, val=%s",
+ $type, $key, $val);
if ($type eq 'URI-NS') {
$self->complete_ns_lookup ($scanner, $ent, $val);