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/06/24 18:54:54 UTC
svn commit: r957624 - in /spamassassin/trunk/lib/Mail/SpamAssassin: Conf.pm
Conf/Parser.pm Plugin/WLBLEval.pm
Author: mmartinec
Date: Thu Jun 24 16:54:54 2010
New Revision: 957624
URL: http://svn.apache.org/viewvc?rev=957624&view=rev
Log:
Bug 6458: fix handling user_prefs for uri wblisting
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=957624&r1=957623&r2=957624&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Thu Jun 24 16:54:54 2010
@@ -669,10 +669,8 @@ previous blacklist_uri_host and whitelis
type => $CONF_TYPE_ADDRLIST,
code => sub {
my($conf, $key, $value, $line) = @_;
- my $listname = $self->{parser}{scoresonly} ? 'wblist_uri_host_userprefs'
- : 'wblist_uri_host';
- my $listref = $conf->{$listname};
- $conf->{$listname} = $listref = {} if !$listref;
+ my $listref = $conf->{wblist_uri_host};
+ $conf->{wblist_uri_host} = $listref = {} if !$listref;
$listref->{$_} = +1 for split(' ', lc $value);
}
});
@@ -690,10 +688,8 @@ See blacklist_uri_host directive for det
type => $CONF_TYPE_ADDRLIST,
code => sub {
my($conf, $key, $value, $line) = @_;
- my $listname = $self->{parser}{scoresonly} ? 'wblist_uri_host_userprefs'
- : 'wblist_uri_host';
- my $listref = $conf->{$listname};
- $conf->{$listname} = $listref = {} if !$listref;
+ my $listref = $conf->{wblist_uri_host};
+ $conf->{wblist_uri_host} = $listref = {} if !$listref;
$listref->{$_} = -1 for split(' ', lc $value);
}
});
@@ -711,12 +707,9 @@ URI domains. Removing an unlisted name i
type => $CONF_TYPE_ADDRLIST,
code => sub {
my($conf, $key, $value, $line) = @_;
- my $listname = $self->{parser}{scoresonly} ? 'wblist_uri_host_userprefs'
- : 'wblist_uri_host';
- my $listref = $conf->{$listname};
- $conf->{$listname} = $listref = {} if !$listref;
- $listref->{$_} = 0 for split(' ', lc $value);
- # choosing 0 instead of deletion allows userprefs to override a global
+ my $listref = $conf->{wblist_uri_host};
+ $conf->{wblist_uri_host} = $listref = {} if !$listref;
+ delete $listref->{$_} for split(' ', lc $value);
}
});
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=957624&r1=957623&r2=957624&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Thu Jun 24 16:54:54 2010
@@ -217,7 +217,6 @@ sub parse {
my $conf = $self->{conf};
$self->{scoresonly} = $scoresonly;
- delete $conf->{wblist_uri_host_userprefs} if $scoresonly; # start afresh
# Language selection:
# See http://www.gnu.org/manual/glibc-2.2.5/html_node/Locale-Categories.html
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm?rev=957624&r1=957623&r2=957624&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm Thu Jun 24 16:54:54 2010
@@ -363,8 +363,7 @@ sub check_uri_host_in_blacklist {
my ($self, $pms) = @_;
my $conf = $self->{main}{conf};
my($host_bl, $host_wl) =
- $self->_check_uri_wblist($pms, $conf->{wblist_uri_userprefs},
- $conf->{wblist_uri_host});
+ $self->_check_uri_wblist($pms, $conf->{wblist_uri_host});
if (defined $host_bl) {
dbg("rules: uri host blacklisted: $host_bl");
$pms->test_log("URI: $host_bl");
@@ -377,8 +376,7 @@ sub check_uri_host_in_whitelist {
my ($self, $pms) = @_;
my $conf = $self->{main}{conf};
my($host_bl, $host_wl) =
- $self->_check_uri_wblist($pms, $conf->{wblist_uri_userprefs},
- $conf->{wblist_uri_host});
+ $self->_check_uri_wblist($pms, $conf->{wblist_uri_host});
if (defined $host_wl) {
dbg("rules: uri host whitelisted: $host_wl");
$pms->test_log("URI: $host_wl");
@@ -388,22 +386,20 @@ sub check_uri_host_in_whitelist {
}
sub _check_uri_wblist {
- my ($self, $pms, $usr_wb_hashref, $sys_wb_hashref) = @_;
+ my ($self, $pms, $wb_hashref) = @_;
if ($pms->{'uri_wblisted'}) {
# just provide a cached result
- } elsif ( (!$usr_wb_hashref || !%$usr_wb_hashref) &&
- (!$sys_wb_hashref || !%$sys_wb_hashref) ) {
+ } elsif (!$wb_hashref || !%$wb_hashref) {
$pms->{'uri_wblisted'} = [ undef, undef ];
} else {
my $host_blacklisted;
my $host_whitelisted;
- $usr_wb_hashref = {} if !$usr_wb_hashref;
- $sys_wb_hashref = {} if !$sys_wb_hashref;
- dbg("rules: check_uri_wblist usr: %s",
- join(', ', map { $_.'='.$usr_wb_hashref->{$_} } keys %$usr_wb_hashref));
- dbg("rules: check_uri_wblist sys: %s",
- join(', ', map { $_.'='.$sys_wb_hashref->{$_} } keys %$sys_wb_hashref));
+ $wb_hashref = {} if !$wb_hashref;
+ if (would_log("dbg","rules")) {
+ dbg("rules: check_uri_wblist: %s",
+ join(', ', map { $_.'='.$wb_hashref->{$_} } sort keys %$wb_hashref));
+ }
# obtain a full list of html-parsed domains
my $uris = $pms->get_uri_detail_list();
my %seen;
@@ -431,8 +427,7 @@ sub _check_uri_wblist {
my $wb_verdict; # positive=blacklisted; negative=whitelisted
my $match;
for my $q (@query_keys) {
- $wb_verdict = $usr_wb_hashref->{$q};
- $wb_verdict = $sys_wb_hashref->{$q} if !$wb_verdict;
+ $wb_verdict = $wb_hashref->{$q};
if ($wb_verdict) { $match = $q; last }
}
if (!$wb_verdict) {