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 2010/12/13 16:27:13 UTC
svn commit: r1045170 - in /spamassassin/trunk/lib/Mail/SpamAssassin:
AutoWhitelist.pm Plugin/DNSEval.pm
Author: mmartinec
Date: Mon Dec 13 15:27:13 2010
New Revision: 1045170
URL: http://svn.apache.org/viewvc?rev=1045170&view=rev
Log:
Bug 6519, use NetAddr::IP::full6 only when available, without bumping up the required version
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm?rev=1045170&r1=1045169&r2=1045170&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm Mon Dec 13 15:27:13 2010
@@ -46,7 +46,7 @@ use warnings;
use bytes;
use re 'taint';
-use NetAddr::IP 4.000; # qw(:upper);
+use NetAddr::IP 4.000;
use Mail::SpamAssassin;
use Mail::SpamAssassin::Logger;
@@ -314,7 +314,7 @@ sub ip_to_awl_key {
my $origip_obj = NetAddr::IP->new6($origip . '/' . $mask_len);
if (!defined $origip_obj) { # invalid IPv6 address
dbg("auto-whitelist: bad IPv6 address $origip");
- } else {
+ } elsif (NetAddr::IP->can('full6')) { # since NetAddr::IP 4.010
$result = $origip_obj->network->full6; # string in a canonical form
$result =~ s/(:0000){1,7}\z/::/; # compress zero tail
}
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm?rev=1045170&r1=1045169&r2=1045170&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm Mon Dec 13 15:27:13 2010
@@ -17,6 +17,8 @@
package Mail::SpamAssassin::Plugin::DNSEval;
+use NetAddr::IP 4.000;
+
use Mail::SpamAssassin::Plugin;
use Mail::SpamAssassin::Logger;
use Mail::SpamAssassin::Constants qw(:ip);
@@ -268,20 +270,24 @@ sub check_rbl_backend {
local($1,$2,$3,$4);
foreach (@ips) {
my $revip;
- if (/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/) {
+ if (/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\z/) {
$revip = "$4.$3.$2.$1";
} elsif (/:/ && # triage
/^ [0-9a-f]{0,4}
(?: : [0-9a-f]{0,4} | \. [0-9]{1,3} ){2,9} $/xsi) {
- # could be an IPv6 address, let NetAddr::IP check the details
- my $ip_obj = NetAddr::IP->new6($_);
- if (!defined $ip_obj) {
- # invalid IPv6 address, $revip remains undefined
+ if (!NetAddr::IP->can('full6')) { # since NetAddr::IP 4.010
+ info("dns: version of NetAddr::IP is too old, IPv6 not supported");
} else {
- # RFC 5782 section 2.4.
- $revip = lc $ip_obj->network->full6; # string in a canonical form
- $revip =~ s/://g;
- $revip = join('.', reverse split(//,$revip));
+ # looks like an IPv6 address, let NetAddr::IP check the details
+ my $ip_obj = NetAddr::IP->new6($_);
+ if (!defined $ip_obj) {
+ # invalid IPv6 address, $revip remains undefined
+ } else {
+ # RFC 5782 section 2.4.
+ $revip = lc $ip_obj->network->full6; # string in a canonical form
+ $revip =~ s/://g;
+ $revip = join('.', reverse split(//,$revip));
+ }
}
}
$pms->do_rbl_lookup($rule, $set, $type, $rbl_server,