You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jg...@apache.org on 2005/10/15 01:12:50 UTC
svn commit: r321240 - in /spamassassin/trunk/lib/Mail: SpamAssassin.pm
SpamAssassin/EvalTests.pm SpamAssassin/PerMsgStatus.pm
Author: jgmyers
Date: Fri Oct 14 16:12:47 2005
New Revision: 321240
URL: http://svn.apache.org/viewcvs?rev=321240&view=rev
Log:
bug 4206: Don't load Bayes if it's disabled
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin.pm
spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm
spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin.pm?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Fri Oct 14 16:12:47 2005
@@ -70,7 +70,6 @@
use Mail::SpamAssassin::Conf::LDAP;
use Mail::SpamAssassin::PerMsgStatus;
use Mail::SpamAssassin::Message;
-use Mail::SpamAssassin::Bayes;
use Mail::SpamAssassin::PluginHandler;
use Mail::SpamAssassin::DnsResolver;
@@ -548,7 +547,7 @@
sub rebuild_learner_caches {
my $self = shift;
my $opts = shift;
- $self->{bayes_scanner}->sync(1,1,$opts);
+ $self->{bayes_scanner}->sync(1,1,$opts) if $self->{bayes_scanner};
1;
}
@@ -560,7 +559,7 @@
sub finish_learner {
my $self = shift;
- $self->{bayes_scanner}->finish();
+ $self->{bayes_scanner}->finish() if $self->{bayes_scanner};
1;
}
@@ -572,7 +571,7 @@
sub dump_bayes_db {
my($self,@opts) = @_;
- $self->{bayes_scanner}->dump_bayes_db(@opts);
+ $self->{bayes_scanner}->dump_bayes_db(@opts) if $self->{bayes_scanner};
}
=item $f->signal_user_changed ( [ { opt => val, ... } ] )
@@ -626,14 +625,19 @@
}
# reopen bayes dbs for this user
- $self->{bayes_scanner}->finish();
- $self->{bayes_scanner} = new Mail::SpamAssassin::Bayes ($self);
+ $self->{bayes_scanner}->finish() if $self->{bayes_scanner};
+ if ($self->{conf}->{use_bayes}) {
+ require Mail::SpamAssassin::Bayes;
+ $self->{bayes_scanner} = new Mail::SpamAssassin::Bayes ($self);
+ } else {
+ delete $self->{bayes_scanner} if $self->{bayes_scanner};
+ }
# this user may have a different learn_to_journal setting, so reset appropriately
$self->{'learn_to_journal'} = $self->{conf}->{bayes_learn_to_journal};
$set |= 1 unless $self->{local_tests_only};
- $set |= 2 if $self->{bayes_scanner}->is_scan_available();
+ $set |= 2 if $self->{bayes_scanner} && $self->{bayes_scanner}->is_scan_available();
$self->{conf}->set_score_set ($set);
@@ -1186,7 +1190,7 @@
}
# make sure things are ready for scanning
- $self->{bayes_scanner}->sanity_check_is_untied();
+ $self->{bayes_scanner}->sanity_check_is_untied() if $self->{bayes_scanner};
$self->call_plugins("compile_now_finish",
{ use_user_prefs => $use_user_prefs,
keep_userstate => $deal_with_userstate});
@@ -1377,13 +1381,16 @@
delete $self->{config_text};
# Initialize the Bayes subsystem
- $self->{bayes_scanner} = new Mail::SpamAssassin::Bayes ($self);
+ if ($self->{conf}->{use_bayes}) {
+ require Mail::SpamAssassin::Bayes;
+ $self->{bayes_scanner} = new Mail::SpamAssassin::Bayes ($self);
+ }
$self->{'learn_to_journal'} = $self->{conf}->{bayes_learn_to_journal};
# Figure out/set our initial scoreset
my $set = 0;
$set |= 1 unless $self->{local_tests_only};
- $set |= 2 if $self->{bayes_scanner}->is_scan_available();
+ $set |= 2 if $self->{bayes_scanner} && $self->{bayes_scanner}->is_scan_available();
$self->{conf}->set_score_set ($set);
if ($self->{only_these_rules}) {
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm Fri Oct 14 16:12:47 2005
@@ -2500,7 +2500,7 @@
sub check_bayes {
my ($self, $fulltext, $min, $max) = @_;
- return 0 if (!$self->{conf}->{use_bayes_rules});
+ return 0 if (!$self->{conf}->{use_bayes} || !$self->{conf}->{use_bayes_rules});
if (!exists ($self->{bayes_score})) {
$self->{bayes_score} = $self->{main}->{bayes_scanner}->scan ($self, $self->{msg});
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=321240&r1=321239&r2=321240&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Fri Oct 14 16:12:47 2005
@@ -139,7 +139,7 @@
# to see if we should go from {0,1} to {2,3}. We of course don't need
# to do this switch if we're already using bayes ... ;)
my $set = $self->{conf}->get_score_set();
- if (($set & 2) == 0 && $self->{main}->{bayes_scanner}->is_scan_available()) {
+ if (($set & 2) == 0 && $self->{main}->{bayes_scanner} && $self->{main}->{bayes_scanner}->is_scan_available()) {
dbg("check: scoreset $set but bayes is available, switching scoresets");
$self->{conf}->set_score_set ($set|2);
}
@@ -1040,6 +1040,7 @@
return "" unless $amt;
my $Bayes = $self->{main}{bayes_scanner};
+ return "Bayes not available" unless defined $Bayes;
my $ns = $self->{bayes_nspam};
my $nh = $self->{bayes_nham};
my $digit = sub { $_[0] > 9 ? "+" : $_[0] };