You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by gb...@apache.org on 2024/10/09 17:17:03 UTC

svn commit: r1921213 - /spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Redirectors.pm

Author: gbechis
Date: Wed Oct  9 17:17:03 2024
New Revision: 1921213

URL: http://svn.apache.org/viewvc?rev=1921213&view=rev
Log:
match redirectors on all subdomains, skip wrong uris

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

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Redirectors.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Redirectors.pm?rev=1921213&r1=1921212&r2=1921213&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Redirectors.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Redirectors.pm Wed Oct  9 17:17:03 2024
@@ -741,11 +741,20 @@ sub _check_redirector_uri {
       'uri' => $uri,
       'method' => $conf->{url_redirector}->{$1} == 1 ? 'head' : 'get',
     };
+  }
+  elsif ($host =~ /(\.[a-z0-9_]+\.[a-z]+)$/i &&
+           exists $conf->{url_redirector}->{$1}) {
+    return {
+      'uri' => $uri,
+      'method' => $conf->{url_redirector}->{$1} == 1 ? 'head' : 'get',
+    };
   } elsif ($newuri = _check_querystring($params, $conf)) {
     return {
       'uri' => $newuri,
       'method' => 'head',
     };
+  } else {
+    dbg("No explicit redirector host found for $host");
   }
   return;
 }
@@ -866,6 +875,7 @@ sub recursive_lookup {
       dbg("URL is not a redirect: $redir_url = ".$response->status_line);
       my $rcode = $response->code;
       if ($rcode =~ /^\d{3}$/) {
+        return if $redir_url !~ /([^.]+\.[^.]+)/;
         $pms->{"redir_url_$rcode"} = 1;
         # Update cache
         $self->cache_add($redir_url, $rcode);