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 2005/05/16 20:43:22 UTC

svn commit: r170426 - in /spamassassin/trunk: lib/Mail/SpamAssassin/Plugin/Razor2.pm rules/25_razor2.cf rules/50_scores.cf

Author: felicity
Date: Mon May 16 11:43:21 2005
New Revision: 170426

URL: http://svn.apache.org/viewcvs?rev=170426&view=rev
Log:
split out razor2 range rules by engine.  more knobs to tweak if desired. :)

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm
    spamassassin/trunk/rules/25_razor2.cf
    spamassassin/trunk/rules/50_scores.cf

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm?rev=170426&r1=170425&r2=170426&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm Mon May 16 11:43:21 2005
@@ -373,7 +373,7 @@
 
   return $permsgstatus->{razor2_result} if (defined $permsgstatus->{razor2_result});
   $permsgstatus->{razor2_result} = 0;
-  $permsgstatus->{razor2_cf_score} = 0;
+  $permsgstatus->{razor2_cf_score} = { '4' => 0, '8' => 0 };
 
   return unless $self->{razor2_available};
   return unless $self->{main}->{conf}->{use_razor2};
@@ -404,14 +404,18 @@
 	' confidence=' . $result->{confidence});
 
       next if $result->{contested};
-      if ($result->{confidence} > $permsgstatus->{razor2_cf_score}) {
-        $permsgstatus->{razor2_cf_score} = $result->{confidence};
+
+      my $cf = $permsgstatus->{razor2_cf_score}->{$result->{engine}} || 0;
+      if ($result->{confidence} > $cf) {
+        $permsgstatus->{razor2_cf_score}->{$result->{engine}} = $result->{confidence};
       }
     }
   }
 
-  dbg("razor2: results: spam? " . $permsgstatus->{razor2_result} .
-    "  highest cf score: " . $permsgstatus->{razor2_cf_score} . "\n");
+  dbg("razor2: results: spam? " . $permsgstatus->{razor2_result});
+  while(my ($engine, $cf) = each %{$permsgstatus->{razor2_cf_score}}) {
+    dbg("razor2: results: engine $engine, highest cf score: $cf");
+  }
 
   return $permsgstatus->{razor2_result};
 }
@@ -419,7 +423,7 @@
 # Check the cf value of a given message and return if it's within the
 # given range
 sub check_razor2_range {
-  my ($self, $permsgstatus, $body, $min, $max) = @_;
+  my ($self, $permsgstatus, $body, $engine, $min, $max) = @_;
 
   # If Razor2 isn't available, or the general test is disabled, don't
   # continue.
@@ -432,8 +436,23 @@
     $self->check_razor2($permsgstatus, $body);
   }
 
-  if ($permsgstatus->{razor2_cf_score} >= $min && $permsgstatus->{razor2_cf_score} <= $max) {
-    $permsgstatus->test_log(sprintf("cf: %3d", $permsgstatus->{razor2_cf_score}));
+  my $cf = 0;
+  if ($engine) {
+    $cf = $permsgstatus->{razor2_cf_score}->{$engine};
+    return unless defined $cf;
+  }
+  else {
+    # If no specific engine was given to the rule, find the highest cf
+    # determined and use that
+    while(my ($engine, $ecf) = each %{$permsgstatus->{razor2_cf_score}}) {
+      if ($ecf > $cf) {
+        $cf = $ecf;
+      }
+    }
+  }
+
+  if ($cf >= $min && $cf <= $max) {
+    $permsgstatus->test_log(sprintf("cf: %3d", $cf));
     return 1;
   }
 

Modified: spamassassin/trunk/rules/25_razor2.cf
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/rules/25_razor2.cf?rev=170426&r1=170425&r2=170426&view=diff
==============================================================================
--- spamassassin/trunk/rules/25_razor2.cf (original)
+++ spamassassin/trunk/rules/25_razor2.cf Mon May 16 11:43:21 2005
@@ -25,10 +25,19 @@
 # Note: The scores are set to 0 on these tests right now until they get
 # better integrated with SA overall.
 #
-full	RAZOR2_CF_RANGE_51_100	eval:check_razor2_range('51','100')
+
+full    RAZOR2_CF_RANGE_51_100  eval:check_razor2_range('','51','100')
 tflags  RAZOR2_CF_RANGE_51_100	net
 #reuse	RAZOR2_CF_RANGE_51_100
 describe RAZOR2_CF_RANGE_51_100	Razor2 gives confidence level above 50%
+
+full	RAZOR2_CF_RANGE_E4_51_100	eval:check_razor2_range('4','51','100')
+tflags  RAZOR2_CF_RANGE_E4_51_100	net
+describe RAZOR2_CF_RANGE_E4_51_100	Razor2 gives engine 4 confidence level above 50%
+
+full	RAZOR2_CF_RANGE_E8_51_100	eval:check_razor2_range('8','51','100')
+tflags  RAZOR2_CF_RANGE_E8_51_100	net
+describe RAZOR2_CF_RANGE_E8_51_100	Razor2 gives engine 8 confidence level above 50%
 
 lang de describe RAZOR2_CF_RANGE_51_100	Razor2 Spam-Bewertung liegt zwischen 51 und 100
 lang fr describe RAZOR2_CF_RANGE_51_100	Razor2 donne un indice de confiance entre 51 et 100

Modified: spamassassin/trunk/rules/50_scores.cf
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/rules/50_scores.cf?rev=170426&r1=170425&r2=170426&view=diff
==============================================================================
--- spamassassin/trunk/rules/50_scores.cf (original)
+++ spamassassin/trunk/rules/50_scores.cf Mon May 16 11:43:21 2005
@@ -672,8 +672,10 @@
 
 # Razor2
 ifplugin Mail::SpamAssassin::Plugin::Razor2
-score RAZOR2_CF_RANGE_51_100 0 1.48 0 0.06
-score RAZOR2_CHECK 0 0.15 0 1.51
+score RAZOR2_CHECK 0 0.5 0 0.5
+score RAZOR2_CF_RANGE_51_100 0 0.5 0 0.5
+score RAZOR2_CF_RANGE_E4_51_100 0 1.5 0 1.5
+score RAZOR2_CF_RANGE_E8_51_100 0 1.5 0 1.5
 endif # Mail::SpamAssassin::Plugin::Razor2
 
 # TextCat