Bug 7824

Summary: Improve test_log() for multiple rule hits
Product: Spamassassin Reporter: Henrik Krohns <apache>
Component: LibrariesAssignee: SpamAssassin Developer Mailing List <dev>
Status: RESOLVED FIXED    
Severity: minor CC: apache
Priority: P3    
Version: SVN Trunk (Latest Devel Version)   
Target Milestone: 4.0.0   
Hardware: All   
OS: All   
Whiteboard:

Description Henrik Krohns 2020-06-07 12:24:55 UTC
It's not possible to call test_log() multiple times to log multiple DNS hits (for example Bug 7822)

- test_log() is not documented
- got_hit() doesn't proceed if rule is already hit
- _handle_hit() creates REPORT/SUMMARY tags by simply appending strings at every call. These should be created _after_ scanning is complete.
Comment 1 Henrik Krohns 2021-04-07 09:23:00 UTC
Now supports multiple calls of $pms->test_log() for rules:
- add $pms->check_cleanup() to finalize tags/reports etc, called from Check.pm after Plugins check_cleanup
- deprecate $pms->{test_log_msgs}, rename to $pms->{test_logs} because old plugins might call %{$self->{test_log_msgs}} = ();
- deprecate $pms->clear_test_state() since it's not needed anymore
- $pms->test_log() accepts $rulename as second argument (if missing, tries get_current_eval_rule_name())

Sending        trunk/UPGRADE
Sending        trunk/lib/Mail/SpamAssassin/Dns.pm
Sending        trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/ASN.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/Check.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/Esp.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/Phishing.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/Razor2.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
Sending        trunk/lib/Mail/SpamAssassin/Plugin/URILocalBL.pm
Sending        trunk/t/uribl_all_types.t
Transmitting file data ..............done
Committing transaction...
Committed revision 1888466.