svn commit: r1932206 - in spamassassin/trunk: lib/Mail/SpamAssassin/Plugin rulesrc/sandbox/pds

[email protected]
Newsgroups gmane.mail.spam.spamassassin.cvs
Message-ID <177286903410.440150.11911510513999867418@svn02-us-east.apache.org>
Author: fkento
Date: Sat Mar  7 07:37:13 2026
New Revision: 1932206

Log:
Add noskip tflag

Modified:
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm
   spamassassin/trunk/rulesrc/sandbox/pds/20_dkimwl.cf

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm	Sat Mar  7 04:20:02 2026	(r1932205)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AskDNS.pm	Sat Mar  7 07:37:13 2026	(r1932206)
@@ -34,7 +34,11 @@ record type and optional subrule filteri
 if a response meets filtering conditions.
 
 Any host or its domain part matching uridnsbl_skip_domains is ignored
-by default.
+by default.  To bypass this check for specific rules, use the C<noskip>
+tflag:
+
+  askdns   MY_RULE  _AUTHORDOMAIN_.dbl.example.com  A  127.0.1.2
+  tflags   MY_RULE  noskip
 
 =head1 RULE DEFINITIONS AND PRIVILEGED SETTINGS
 
@@ -398,9 +402,11 @@ sub launch_queries {
 
   my $arule = $pms->{conf}->{askdns}{$rulename};
   my $query_tmpl = $arule->{query};
+  my $noskip = ($pms->{conf}->{tflags}->{$rulename}||'') =~ /\bnoskip\b/;
   my $queries;
   if (@$tags) {
-    if (!exists $pms->{askdns_qtmpl_cache}{$query_tmpl}) {
+    my $cache_key = $noskip ? "noskip\x00$query_tmpl" : $query_tmpl;
+    if (!exists $pms->{askdns_qtmpl_cache}{$cache_key}) {
       # replace tags in query template
       # iterate through each tag, replacing list of strings as we go
       my %q_iter = ( "$query_tmpl" => 1 );
@@ -420,14 +426,16 @@ sub launch_queries {
         foreach my $q (keys %q_iter) {
           # handle space separated multi-valued tags
           foreach my $val (@{$pms->{askdns_tag_cache}{$tag}}) {
-            if (exists $pms->{conf}->{uridnsbl_skip_domains}->{lc $val}) {
-              dbg("askdns: query skipped, uridnsbl_skip_domains: $val");
-              next;
-            }
-            my $dom = $pms->{main}->{registryboundaries}->trim_domain($val);
-            if (exists $pms->{conf}->{uridnsbl_skip_domains}->{lc $dom}) {
-              dbg("askdns: query skipped, uridnsbl_skip_domains: $val");
-              next;
+            if (!$noskip) {
+              if (exists $pms->{conf}->{uridnsbl_skip_domains}->{lc $val}) {
+                dbg("askdns: query skipped, uridnsbl_skip_domains: $val");
+                next;
+              }
+              my $dom = $pms->{main}->{registryboundaries}->trim_domain($val);
+              if (exists $pms->{conf}->{uridnsbl_skip_domains}->{lc $dom}) {
+                dbg("askdns: query skipped, uridnsbl_skip_domains: $val");
+                next;
+              }
             }
             my $qtmp = $q;
             $qtmp =~ s/\Q_${tag}_\E/${val}/g;
@@ -439,9 +447,9 @@ sub launch_queries {
       # cache idn'd queries
       my @q_arr;
       push @q_arr, idn_to_ascii($_) foreach (keys %q_iter);
-      $pms->{askdns_qtmpl_cache}{$query_tmpl} = \@q_arr;
+      $pms->{askdns_qtmpl_cache}{$cache_key} = \@q_arr;
     }
-    $queries = $pms->{askdns_qtmpl_cache}{$query_tmpl};
+    $queries = $pms->{askdns_qtmpl_cache}{$cache_key};
   } else {
     push @$queries, idn_to_ascii($query_tmpl);
   }

Modified: spamassassin/trunk/rulesrc/sandbox/pds/20_dkimwl.cf
==============================================================================
--- spamassassin/trunk/rulesrc/sandbox/pds/20_dkimwl.cf	Sat Mar  7 04:20:02 2026	(r1932205)
+++ spamassassin/trunk/rulesrc/sandbox/pds/20_dkimwl.cf	Sat Mar  7 07:37:13 2026	(r1932206)
@@ -1,31 +1,31 @@
 ifplugin Mail::SpamAssassin::Plugin::AskDNS
 
 askdns    __DKIMWL_FREEMAIL _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.3\.\d+$/
-tflags    __DKIMWL_FREEMAIL net
+tflags    __DKIMWL_FREEMAIL net noskip
 reuse     __DKIMWL_FREEMAIL
 
 askdns    __DKIMWL_BULKMAIL _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.2\.\d+$/
-tflags    __DKIMWL_BULKMAIL net
+tflags    __DKIMWL_BULKMAIL net noskip
 reuse     __DKIMWL_BULKMAIL
 
 askdns    __DKIMWL_WL_HI    _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.5$/
-tflags    __DKIMWL_WL_HI    net
+tflags    __DKIMWL_WL_HI    net noskip
 reuse     __DKIMWL_WL_HI
 
 askdns    __DKIMWL_WL_MEDHI _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.4$/
-tflags    __DKIMWL_WL_MEDHI net
+tflags    __DKIMWL_WL_MEDHI net noskip
 reuse     __DKIMWL_WL_MEDHI
 
 askdns    __DKIMWL_WL_MED   _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.3$/
-tflags    __DKIMWL_WL_MED   net
+tflags    __DKIMWL_WL_MED   net noskip
 reuse     __DKIMWL_WL_MED
 
 askdns    __DKIMWL_WL_BL   _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.0$/
-tflags    __DKIMWL_WL_BL   net
+tflags    __DKIMWL_WL_BL   net noskip
 reuse     __DKIMWL_WL_BL
 
 askdns    __DKIMWL_BLOCKED  _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.255\.255\.255$/
-tflags    __DKIMWL_BLOCKED  net
+tflags    __DKIMWL_BLOCKED  net noskip
 reuse     __DKIMWL_BLOCKED
 
 meta      DKIMWL_WL_HIGH  __DKIMWL_WL_HI && !(FREEMAIL_FROM || FREEMAIL_REPLYTO || FREEMAIL_FORGED_REPLYTO || __DKIMWL_FREEMAIL || __DKIMWL_BULKMAIL)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.