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 2022/05/17 04:02:38 UTC

svn commit: r1900974 - /spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm

Author: hege
Date: Tue May 17 04:02:38 2022
New Revision: 1900974

URL: http://svn.apache.org/viewvc?rev=1900974&view=rev
Log:
Bug 7987 - DNSEval.pm,HashBL.pm,URILocalBL.pm: unnecessary use of rule_pending and rule_ready
For backwards compatibility:
- Use rule_ready() in run_eval_tests to allow async even for "return 0"
- Bring back async pending check in do_meta_tests

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

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm?rev=1900974&r1=1900973&r2=1900974&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm Tue May 17 04:02:38 2022
@@ -287,11 +287,14 @@ sub do_meta_tests {
   my $h = $pms->{tests_already_hit};
   my $retry;
 
+  # Get pending DNS async rule list
+  my %pl = map { $_ => 1 } $pms->get_async_pending_rules();
+
 RULE:
   foreach my $rulename (keys %$mp) {
     # Meta is not ready if some dependency has not run yet
     foreach my $deprule (@{$md->{$rulename}||[]}) {
-      if (!exists $h->{$deprule}) {
+      if (!exists $h->{$deprule} || $pl{$deprule}) {
         next RULE;
       }
     }
@@ -1200,7 +1203,7 @@ sub run_eval_tests {
           $self->got_hit($rulename, $prepend2desc, ruletype => "eval", value => $result);
           '.$dbgstr.'
         } else {
-          $hitsptr->{$rulename} ||= 0;
+          $self->rule_ready($rulename);
         }
       }
     }