You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2019/08/29 10:16:12 UTC

svn commit: r1866063 - in /spamassassin/trunk/lib/Mail/SpamAssassin: Dns.pm Plugin/Check.pm

Author: hege
Date: Thu Aug 29 10:16:12 2019
New Revision: 1866063

URL: http://svn.apache.org/viewvc?rev=1866063&view=rev
Log:
Improve shortcircuiting/DNS

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm?rev=1866063&r1=1866062&r2=1866063&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Dns.pm Thu Aug 29 10:16:12 2019
@@ -329,7 +329,7 @@ sub harvest_dnsbl_queries {
     my ($alldone,$anydone) =
       $self->{async}->complete_lookups($first ? 0 : 1.0,  1);
 
-    last  if $alldone || $self->{deadline_exceeded};
+    last  if $alldone || $self->{deadline_exceeded} || $self->{shortcircuited};
 
     dbg("dns: harvest_dnsbl_queries - check_tick");
     $self->{main}->call_plugins ("check_tick", { permsgstatus => $self });

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm?rev=1866063&r1=1866062&r2=1866063&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm Thu Aug 29 10:16:12 2019
@@ -115,6 +115,7 @@ sub check_main {
     } elsif ($self->{main}->call_plugins("have_shortcircuited",
                                          { permsgstatus => $pms })) {
       # if shortcircuiting is hit, we skip all other priorities...
+      $pms->{shortcircuited} = 1;
       last;
     }
 
@@ -141,49 +142,48 @@ sub check_main {
     # do head tests
     $self->do_head_tests($pms, $priority);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     $self->do_head_eval_tests($pms, $priority);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     $self->do_body_tests($pms, $priority, $decoded);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     $self->do_uri_tests($pms, $priority, @uris);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     $self->do_body_eval_tests($pms, $priority, $decoded);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
   
     $self->do_rawbody_tests($pms, $priority, $bodytext);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     $self->do_rawbody_eval_tests($pms, $priority, $bodytext);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
   
     $self->do_full_tests($pms, $priority, \$fulltext);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     $self->do_full_eval_tests($pms, $priority, \$fulltext);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     $self->do_meta_tests($pms, $priority);
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
+    last if $pms->{deadline_exceeded} || $pms->{shortcircuited};
 
     # we may need to call this more often than once through the loop, but
     # it needs to be done at least once, either at the beginning or the end.
     $self->{main}->call_plugins ("check_tick", { permsgstatus => $pms });
     $pms->harvest_completed_queries() if $rbls_running;
-    last if $pms->{deadline_exceeded};
   }
 
   # Finish DNS results
@@ -307,6 +307,7 @@ sub run_generic_tests {
     return;
   } elsif ($self->{main}->call_plugins("have_shortcircuited",
                                         { permsgstatus => $pms })) {
+    $pms->{shortcircuited} = 1;
     return;
   }
 
@@ -1093,6 +1094,7 @@ sub run_eval_tests {
     return;
   } elsif ($self->{main}->call_plugins("have_shortcircuited",
                                         { permsgstatus => $pms })) {
+    $pms->{shortcircuited} = 1;
     return;
   }