Mailing List Archive

svn commit: r209917 - /spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
Author: jm
Date: Fri Jul 8 18:30:33 2005
New Revision: 209917

URL: http://svn.apache.org/viewcvs?rev=209917&view=rev
Log:
bug 4456: avoid annoying 'can't call method qname on an undefined value' errors caused by DNS server returning unusual reply packets

Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm?rev=209917&r1=209916&r2=209917&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Fri Jul 8 18:30:33 2005
@@ -225,7 +225,17 @@
my $id = $header->id;
my @questions = $packet->question;
my $ques = $questions[0];
- return $id . $ques->qname . $ques->qtype . $ques->qclass;
+
+ if (defined $ques) {
+ return $id . $ques->qname . $ques->qtype . $ques->qclass;
+ } else {
+ # odd. this should not happen, but clearly some DNS servers
+ # can return something that Net::DNS interprets as having no
+ # question section. Better support it; just return the
+ # (safe) ID part, along with a text token indicating that
+ # the packet had no question part.
+ return $id . "NO_QUESTION_IN_PACKET";
+ }
}

###########################################################################