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;
}