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 2009/09/15 03:03:34 UTC
svn commit: r814949 - in /spamassassin/trunk/lib/Mail/SpamAssassin:
AutoWhitelist.pm PerMsgStatus.pm Plugin/AWL.pm
Author: mmartinec
Date: Tue Sep 15 01:03:33 2009
New Revision: 814949
URL: http://svn.apache.org/viewvc?rev=814949&view=rev
Log:
AutoWhitelist.pm: (complete the unfinished to-do) canonicalize
an IPv6 address and keep only the /48 network part, when using
it in an AWL database entry; added some commented-out debugging
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm?rev=814949&r1=814948&r2=814949&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm Tue Sep 15 01:03:33 2009
@@ -45,6 +45,7 @@
use warnings;
use bytes;
use re 'taint';
+use NetAddr::IP;
use Mail::SpamAssassin;
use Mail::SpamAssassin::Logger;
@@ -312,9 +313,17 @@
} elsif ($origip =~ /:/ &&
$origip =~
/^ [0-9a-f]{0,4} (?: : [0-9a-f]{0,4} | \. [0-9]{1,3} ){2,9} $/xsi) {
- # looks like an IPv6 address; TODO: put it into a canonical form
- $origip = uc($origip);
+ # looks like an IPv6 address
+ my $origip_obj = NetAddr::IP->new6($origip);
+ if (!defined $origip_obj) { # invalid IPv6 address
+ dbg("auto-whitelist: bad IPv6 address $origip");
+ $origip = 'junk-' . $origip;
+ } else {
+ $origip = $origip_obj->full6; # string in a canonical form
+ $origip =~ s/(:[0-9a-f]{4}){5}\z//si; # keep only the /48 network addr
+ }
} else {
+ dbg("auto-whitelist: bad IP address $origip");
$origip =~ s/[^0-9A-Fa-f:.]/_/gs; # paranoia
$origip = 'junk-' . $origip;
}
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=814949&r1=814948&r2=814949&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Tue Sep 15 01:03:33 2009
@@ -1556,6 +1556,7 @@
else {
my @results = $getraw ? $self->{msg}->raw_header($request)
: $self->{msg}->get_header($request);
+ # dbg("message: get(%s) = %s", $request, join(", ",@results));
if (@results) {
$result = join('', @results);
} else { # metadata
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm?rev=814949&r1=814948&r2=814949&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AWL.pm Tue Sep 15 01:03:33 2009
@@ -339,6 +339,7 @@
my $timer = $self->{main}->time_method("total_awl");
my $from = lc $pms->get('From:addr');
+ # dbg("auto-whitelist: From: $from");
return 0 unless $from =~ /\S/;
# find the earliest usable "originating IP". ignore private nets
@@ -391,7 +392,8 @@
dbg("auto-whitelist: AWL active, pre-score: %s, autolearn score: %s, ".
"mean: %s%s, IP: %s, address: %s %s",
- $pms->{score}, $awlpoints, $meanscore || 'undef',
+ $pms->{score}, $awlpoints,
+ !defined $meanscore ? 'undef' : sprintf("%.3f",$meanscore),
!defined $signeravg ? '' : sprintf(", signer_avg: %.2f",$signeravg),
$origip || 'undef',
$from, $signedby ? "SIGNED by $signedby" : '(not signed)');