You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by do...@apache.org on 2007/06/03 21:55:23 UTC

svn commit: r543972 - /spamassassin/branches/3.2/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm

Author: dos
Date: Sun Jun  3 12:55:22 2007
New Revision: 543972

URL: http://svn.apache.org/viewvc?view=rev&rev=543972
Log:
bug 5487: prevent multiple "urirhssub"s using the same zone from overwriting each other

Modified:
    spamassassin/branches/3.2/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm

Modified: spamassassin/branches/3.2/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.2/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm?view=diff&rev=543972&r1=543971&r2=543972
==============================================================================
--- spamassassin/branches/3.2/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm (original)
+++ spamassassin/branches/3.2/lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm Sun Jun  3 12:55:22 2007
@@ -362,9 +362,7 @@
           is_rhsbl => 1, is_subrule => 1
         };
         $self->{uridnsbl_subs}->{$zone} ||= { };
-        $self->{uridnsbl_subs}->{$zone}->{$subrule} = {
-          rulename => $rulename
-        };
+        push (@{$self->{uridnsbl_subs}->{$zone}->{$subrule}->{rulenames}}, $rulename);
       }
       elsif ($value =~ /^$/) {
         return $Mail::SpamAssassin::Conf::MISSING_REQUIRED_VALUE;
@@ -599,17 +597,19 @@
     else {
       foreach my $subtest (keys (%{$uridnsbl_subs}))
       {
-        my $subrulename = $uridnsbl_subs->{$subtest}->{rulename};
-
         if ($subtest eq $rdatastr) {
-          $self->got_dnsbl_hit($scanner, $ent, $rdatastr, $dom, $subrulename);
+          foreach my $subrulename (@{$uridnsbl_subs->{$subtest}->{rulenames}}) {
+            $self->got_dnsbl_hit($scanner, $ent, $rdatastr, $dom, $subrulename);
+          }
         }
         # bitmask
         elsif ($subtest =~ /^\d+$/) {
 	  if ($rdatastr =~ m/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ &&
 	      Mail::SpamAssassin::Util::my_inet_aton($rdatastr) & $subtest)
           {
-            $self->got_dnsbl_hit($scanner, $ent, $rdatastr, $dom, $subrulename);
+            foreach my $subrulename (@{$uridnsbl_subs->{$subtest}->{rulenames}}) {
+              $self->got_dnsbl_hit($scanner, $ent, $rdatastr, $dom, $subrulename);
+            }
           }
         }
       }