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 2021/04/06 13:08:42 UTC
svn commit: r1888435 - in
/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin: Check.pm HashBL.pm
URIDNSBL.pm
Author: hege
Date: Tue Apr 6 13:08:42 2021
New Revision: 1888435
URL: http://svn.apache.org/viewvc?rev=1888435&view=rev
Log:
Revert Revision 1878575,1878574,1878572 (Bugs 7822, 7822), remove any traces of undocumented check_cleanup from 3.4, metas do not work correctly with it. URIDNSBL/HashBL revert to logging only first hit, any improvements will be in 4.0 only.
Modified:
spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/Check.pm
spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm
spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/Check.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/Check.pm?rev=1888435&r1=1888434&r2=1888435&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/Check.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/Check.pm Tue Apr 6 13:08:42 2021
@@ -202,9 +202,6 @@ sub check_main {
$pms->{resolver}->finish_socket() if $pms->{resolver};
}
- # last chance to handle left callbacks, make rule hits etc
- $self->{main}->call_plugins ("check_cleanup", { permsgstatus => $pms });
-
if ($pms->{deadline_exceeded}) {
$pms->got_hit('TIME_LIMIT_EXCEEDED', '', defscore => 0.001,
description => 'Exceeded time limit / deadline');
Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm?rev=1888435&r1=1888434&r2=1888435&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm Tue Apr 6 13:08:42 2021
@@ -452,7 +452,6 @@ sub check_hashbl_emails {
my $max = $opts =~ /\bmax=(\d+)\b/ ? $1 : 10;
$#filtered_emails = $max-1 if scalar @filtered_emails > $max;
- $pms->{hashbl_emails_count}{$rulename} = scalar @filtered_emails;
foreach my $email (@filtered_emails) {
$self->_submit_query($pms, $rulename, $email, $list, $opts, $subtest);
}
@@ -667,11 +666,9 @@ sub _submit_query {
sub _finish_query {
my ($self, $pms, $ent, $pkt) = @_;
- my $rulename = $ent->{rulename};
-
if (!$pkt) {
# $pkt will be undef if the DNS query was aborted (e.g. timed out)
- dbg("lookup was aborted: $rulename $ent->{key}");
+ dbg("lookup was aborted: $ent->{rulename} $ent->{key}");
return;
}
@@ -679,34 +676,15 @@ sub _finish_query {
my @answer = $pkt->answer;
foreach my $rr (@answer) {
if ($rr->address =~ $dnsmatch) {
- dbg("$rulename: $ent->{zone} hit '$ent->{value}'");
+ dbg("$ent->{rulename}: $ent->{zone} hit '$ent->{value}'");
$ent->{value} =~ s/\@/[at]/g;
- # Hit now if only one query exists, otherwise call hits at scan end
- if ($pms->{hashbl_emails_count}{$rulename} == 1) {
- $pms->test_log($ent->{value});
- $pms->got_hit($rulename, '', ruletype => 'eval');
- $pms->register_async_rule_finish($rulename);
- } else {
- push @{$pms->{hashbl_emails_hits}{$rulename}}, $ent->{value};
- }
+ $pms->test_log($ent->{value});
+ $pms->got_hit($ent->{rulename}, '', ruletype => 'eval');
+ $pms->register_async_rule_finish($ent->{rulename});
return;
}
}
}
-
-sub check_cleanup {
- my ($self, $opts) = @_;
-
- my $pms = $opts->{permsgstatus};
-
- # Call any remaining hits
- if (exists $pms->{hashbl_emails_hits}) {
- foreach my $rulename (keys %{$pms->{hashbl_emails_hits}}) {
- $pms->test_log(join(', ', sort @{$pms->{hashbl_emails_hits}{$rulename}}));
- $pms->got_hit($rulename, '', ruletype => 'eval');
- }
- }
-}
# Version features
sub has_hashbl_bodyre { 1 }
Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm?rev=1888435&r1=1888434&r2=1888435&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm Tue Apr 6 13:08:42 2021
@@ -1159,6 +1159,11 @@ sub got_dnsbl_hit {
$str =~ s/\s+/ /gs; # long whitespace => short
dbg("uridnsbl: domain \"$dom\" listed ($rulename): $str");
+ if (!defined $pms->{uridnsbl_hits}->{$rulename}) {
+ $pms->{uridnsbl_hits}->{$rulename} = { };
+ };
+ $pms->{uridnsbl_hits}->{$rulename}->{$dom} = 1;
+
if ( $pms->{uridnsbl_active_rules_nsrevipbl}->{$rulename}
|| $pms->{uridnsbl_active_rules_arevipbl}->{$rulename}
|| $pms->{uridnsbl_active_rules_nsrhsbl}->{$rulename}
@@ -1167,20 +1172,14 @@ sub got_dnsbl_hit {
|| $pms->{uridnsbl_active_rules_rhsbl_ipsonly}->{$rulename}
|| $pms->{uridnsbl_active_rules_rhsbl_domsonly}->{$rulename})
{
- # Hits are saved and called in check_cleanup
- $pms->{uridnsbl_hits}->{$rulename}->{$dom} = 1;
- }
-}
-
-sub check_cleanup {
- my ($self, $opts) = @_;
-
- my $pms = $opts->{permsgstatus};
+ # TODO: this needs to handle multiple domain hits per rule
+ $pms->clear_test_state();
+ my $uris = join (' ', keys %{$pms->{uridnsbl_hits}->{$rulename}});
+ $pms->test_log ("URIs: $uris");
+ $pms->got_hit ($rulename, "");
- # Call any remaining hits
- foreach my $rulename (keys %{$pms->{uridnsbl_hits}}) {
- $pms->test_log("URIs: ".join(', ', sort keys %{$pms->{uridnsbl_hits}->{$rulename}}));
- $pms->got_hit($rulename, '');
+ # note that this rule has completed (since it got at least 1 hit)
+ $pms->register_async_rule_finish($rulename);
}
}