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/31 17:59:09 UTC
svn commit: r1367634 -
/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
Author: mmartinec
Date: Tue Jul 31 15:59:09 2012
New Revision: 1367634
URL: http://svn.apache.org/viewvc?rev=1367634&view=rev
Log:
Bug 6819: Avoiding some DNS lookup failure warnings
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm?rev=1367634&r1=1367633&r2=1367634&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Tue Jul 31 15:59:09 2012
@@ -456,9 +456,21 @@ sub new_dns_packet {
$type = 'PTR';
}
}
+ $type = 'A' if !defined $type; # a Net::DNS::Packet default
+ $class = 'IN' if !defined $class; # a Net::DNS::Packet default
my $packet;
eval {
+ $host =~ s/\.*\z/./s;
+ if (length($host) > 255) {
+ die "domain name longer than 255 bytes\n";
+ } elsif ($host !~ /^ (?: [^.]{1,63} \. )+ \z/sx) {
+ if ($host !~ /^ (?: [^.]+ \. )+ \z/sx) {
+ die "a domain name contains a null label\n";
+ } else {
+ die "a label in a domain name is longer than 63 bytes\n";
+ }
+ }
$host = dnsext_dns0x20($host) if $self->{conf}->{dns_options}->{dns0x20};
$packet = Net::DNS::Packet->new($host, $type, $class);
@@ -471,9 +483,8 @@ sub new_dns_packet {
# case this function should never be called!
# 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?'-':$packet->id, $eval_stat);
+ warn sprintf("dns: new_dns_packet (host=%s type=%s class=%s) failed: %s\n",
+ $host, $type, $class, $eval_stat);
};
return $packet;