You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by fe...@apache.org on 2004/11/13 03:59:25 UTC
svn commit: rev 57555 - in spamassassin/trunk/lib/Mail: . SpamAssassin SpamAssassin/Plugin
Author: felicity
Date: Fri Nov 12 18:59:24 2004
New Revision: 57555
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin.pm
spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm
spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
Log:
bug 3777: instead of code (and plugins) accessing DEBUG and facilities variables from the Mail::SpamAssassin package directly, call dbg_check() and info_check() functions. can optionally pass a facility to check, and if the facility is prepended by '+', the 'all' facility will be ignored (good for 'is facility X specifically enabled' ...) also changed the Razor2 debugging to only show razor-agents debug only if the razor2 facility is enabled.
Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Fri Nov 12 18:59:24 2004
@@ -1656,6 +1656,26 @@
}
}
+# returns whether or not debugging is enabled in general or (if specified) for
+# a certain facility
+sub dbg_check {
+ my $facility = shift;
+ my $useall = 1;
+
+ if (defined $facility) {
+ if ($facility =~ /^(\+)(.+)$/) {
+ $facility = $2;
+ $useall = 0;
+ }
+ return($Mail::SpamAssassin::DEBUG && (
+ ($useall && $Mail::SpamAssassin::facilities{all}) ||
+ $Mail::SpamAssassin::facilities{$facility}
+ ));
+ }
+
+ return($Mail::SpamAssassin::DEBUG && $Mail::SpamAssassin::facilities{all});
+}
+
# usage: info("facility: message")
# This is used for informational messages indicating a normal, but
# significant, condition. This should be very infrequently called.
@@ -1673,6 +1693,31 @@
if ($facilities{all} || $facilities{info} || $facilities{$facility}) {
warn "info: $facility: $message\n";
}
+}
+
+# returns whether or not info output is enabled in general or (if specified) for
+# a certain facility
+sub info_check {
+ my $facility = shift;
+ my $useall = 1;
+
+ if (defined $facility) {
+ if ($facility =~ /^(\+)(.+)$/) {
+ $facility = $2;
+ $useall = 0;
+ }
+ return($Mail::SpamAssassin::INFO && (
+ ($useall &&
+ ($Mail::SpamAssassin::facilities{all} ||
+ $Mail::SpamAssassin::facilities{info})) ||
+ $Mail::SpamAssassin::facilities{$facility}
+ ));
+ }
+
+ return($Mail::SpamAssassin::INFO && (
+ $Mail::SpamAssassin::facilities{all} ||
+ $Mail::SpamAssassin::facilities{info}
+ ));
}
# sa_die -- used to die with a useful exit code.
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore.pm Fri Nov 12 18:59:24 2004
@@ -319,7 +319,7 @@
return 0 unless (%delta);
# This will skip the for loop if debugging isn't enabled ...
- if ($Mail::SpamAssassin::DEBUG) {
+ if (Mail::SpamAssassin::dbg_check('bayes')) {
dbg("bayes: atime\ttoken reduction");
dbg("bayes: ========\t===============");
for(my $i = 1; $i<=$max_expire_mult; $i <<= 1) {
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Fri Nov 12 18:59:24 2004
@@ -1459,13 +1459,14 @@
sub ran_rule_debug_code {
my ($self, $rulename, $ruletype, $bit) = @_;
+ my $dbgcache = Mail::SpamAssassin::dbg_check('rules');
- return '' if (!$Mail::SpamAssassin::DEBUG && !$self->{save_pattern_hits});
+ return '' if (!$dbgcache && !$self->{save_pattern_hits});
my $log_hits_code = '';
my $save_hits_code = '';
- if ($Mail::SpamAssassin::DEBUG) {
+ if ($dbgcache) {
# note: keep this in 'single quotes' to avoid the $ & performance hit,
# unless specifically requested by the caller.
$log_hits_code = ': match=\'$&\'';
@@ -1833,7 +1834,7 @@
$self->{uri_list} = \@uris;
# list out the URLs for debugging ...
- if ($Mail::SpamAssassin::DEBUG) {
+ if (Mail::SpamAssassin::dbg_check('uri')) {
foreach my $nuri (@uris) {
dbg("uri: uri found: $nuri");
}
@@ -2256,7 +2257,7 @@
my ($self, $evalhash, $prepend2desc, @extraevalargs) = @_;
local ($_);
- my $debugenabled = $Mail::SpamAssassin::DEBUG;
+ my $debugenabled = Mail::SpamAssassin::dbg_check();
my $scoreset = $self->{conf}->get_score_set();
while (my ($rulename, $test) = each %{$evalhash}) {
@@ -2354,8 +2355,6 @@
return 0;
}
- my $debugenabled = $Mail::SpamAssassin::DEBUG;
-
while (my ($rulename, $test) = each %{$evalhash}) {
my $score = $self->{conf}->{scores}->{$rulename};
next unless $score;
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm Fri Nov 12 18:59:24 2004
@@ -125,14 +125,14 @@
my $return = 0;
my @results = ();
+ my $debug = $type eq 'check' ? 'razor2' : 'reporter';
+
# razor also debugs to stdout. argh. fix it to stderr...
- if ($Mail::SpamAssassin::DEBUG) {
+ if (Mail::SpamAssassin::dbg_check($debug)) {
open (OLDOUT, ">&STDOUT");
open (STDOUT, ">&STDERR");
}
- my $debug = $type eq 'check' ? 'razor2' : 'reporter';
-
Mail::SpamAssassin::PerMsgStatus::enter_helper_run_mode($self);
eval {
@@ -146,9 +146,7 @@
if ($rc) {
$rc->{opt} = {
- debug => ($Mail::SpamAssassin::DEBUG &&
- ($Mail::SpamAssassin::facilities{all} ||
- $Mail::SpamAssassin::facilities{razor2})),
+ debug => Mail::SpamAssassin::dbg_check('+razor2'),
foreground => 1,
config => $self->{main}->{conf}->{razor_config}
};
@@ -291,7 +289,7 @@
Mail::SpamAssassin::PerMsgStatus::leave_helper_run_mode($self);
# razor also debugs to stdout. argh. fix it to stderr...
- if ($Mail::SpamAssassin::DEBUG) {
+ if (Mail::SpamAssassin::dbg_check($debug)) {
open (STDOUT, ">&OLDOUT");
close OLDOUT;
}
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm Fri Nov 12 18:59:24 2004
@@ -208,7 +208,7 @@
$query = Mail::SPF::Query->new (ip => $ip,
sender => $sender,
helo => $helo,
- debug => $Mail::SpamAssassin::DEBUG->{rbl},
+ debug => Mail::SpamAssassin::dbg_check('+rbl'),
trusted => 1);
};