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/11/08 19:07:22 UTC
svn commit: r1407194 -
/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
Author: mmartinec
Date: Thu Nov 8 18:07:22 2012
New Revision: 1407194
URL: http://svn.apache.org/viewvc?rev=1407194&view=rev
Log:
Bug 6862: Allow a DNS resolver to use EDNS (let it apply to queries prepared by our DnsResolver.pm too)
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=1407194&r1=1407193&r2=1407194&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Thu Nov 8 18:07:22 2012
@@ -146,7 +146,7 @@ sub load_resolver {
my $edns = $self->{conf}->{dns_options}->{edns};
if ($edns && $edns > 512) {
$res->udppacketsize($edns);
- dbg("dns: EDNS, UDP message size %d", $edns);
+ dbg("dns: EDNS, UDP payload size %d", $edns);
}
# set $res->nameservers for the benefit of plugins which don't use
@@ -515,6 +515,8 @@ sub dnsext_dns0x20 {
return $result;
}
+# this subroutine mimics the Net::DNS::Resolver::Base::make_query_packet()
+#
sub new_dns_packet {
my ($self, $host, $type, $class) = @_;
@@ -559,6 +561,17 @@ sub new_dns_packet {
$host, $type, $class, $eval_stat);
};
+ if ($packet) {
+ # my $udp_payload_size = $self->{res}->udppacketsize;
+ my $udp_payload_size = $self->{conf}->{dns_options}->{edns};
+ if ($udp_payload_size && $udp_payload_size > 512) {
+ # dbg("dns: adding EDNS ext, UDP payload size %d", $udp_payload_size);
+ my $optrr = Net::DNS::RR->new(Type => 'OPT', Name => '', TTL => 0,
+ Class => $udp_payload_size);
+ $packet->push('additional', $optrr);
+ }
+ }
+
return $packet;
}