svn commit: r1927709 - spamassassin/trunk/lib/Mail/SpamAssassin

[email protected]
Newsgroups gmane.mail.spam.spamassassin.cvs
Message-ID <175472563882.541062.15203571137733218672@svn02-us-east.apache.org>
Author: gbechis
Date: Sat Aug  9 07:47:18 2025
New Revision: 1927709

Log:
do not run dns code if dns is not available
bz #8343

Modified:
   spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm	Sat Aug  9 04:20:03 2025	(r1927708)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm	Sat Aug  9 07:47:18 2025	(r1927709)
@@ -2908,39 +2908,41 @@ sub add_uri_detail_list {
       $hosts{$host} = $domain;
     }
 
-    # XXX we cannot call bgsend_and_start_lookup,
-    # otherwise get_uri_detail_list() might not
-    # return domains extracted from CNAME dns queries
-    # in time
-    my $orig_resolver =  $self->{main}->{resolver}->get_resolver();
-    my $pkt;
-    eval {
-      return if not defined $host;
-      my $handle = $orig_resolver->bgsend($host, 'CNAME');
-      $pkt = $orig_resolver->bgread($handle);
-      return if !$pkt; # aborted / timed out
-      my @answ = $pkt->answer;
-      foreach my $ans ( @answ ) {
-        return if not defined $ans->cname;
-        if(not exists $self->{dns_cname_cache}{$host}) {
-          $self->{dns_cname_cache}{$host} = $ans->cname;
-          dbg("dns: found CNAME " . $ans->cname . " for host $host");
-          my $cname_types = { %{$types} };
-          $cname_types->{unlinked} = 1;
-          $cname_types->{noclean} = 1;
-          $self->{uri_cnames}{$ans->cname} = $host;
-          $self->add_uri_detail_list($ans->cname, $cname_types, $source, 1);
-	}
-      }
-    } or do {
-      undef $pkt;
-      if($@) {
-        my $eval_stat = $@ ne '' ? $@ : "errno=$!";  chomp $eval_stat;
-        # resignal if alarm went off
-        die $eval_stat  if $eval_stat =~ /__alarm__ignore__\(.*\)/s;
-        info("dns: bad dns reply: %s", $eval_stat);
-      }
-    };
+    if($self->is_dns_available()) {
+      # XXX we cannot call bgsend_and_start_lookup,
+      # otherwise get_uri_detail_list() might not
+      # return domains extracted from CNAME dns queries
+      # in time
+      my $orig_resolver =  $self->{main}->{resolver}->get_resolver();
+      my $pkt;
+      eval {
+        return if not defined $host;
+        my $handle = $orig_resolver->bgsend($host, 'CNAME');
+        $pkt = $orig_resolver->bgread($handle);
+        return if !$pkt; # aborted / timed out
+        my @answ = $pkt->answer;
+        foreach my $ans ( @answ ) {
+          return if not defined $ans->cname;
+          if(not exists $self->{dns_cname_cache}{$host}) {
+            $self->{dns_cname_cache}{$host} = $ans->cname;
+            dbg("dns: found CNAME " . $ans->cname . " for host $host");
+            my $cname_types = { %{$types} };
+            $cname_types->{unlinked} = 1;
+            $cname_types->{noclean} = 1;
+            $self->{uri_cnames}{$ans->cname} = $host;
+            $self->add_uri_detail_list($ans->cname, $cname_types, $source, 1);
+	  }
+        }
+      } or do {
+        undef $pkt;
+        if($@) {
+          my $eval_stat = $@ ne '' ? $@ : "errno=$!";  chomp $eval_stat;
+          # resignal if alarm went off
+          die $eval_stat  if $eval_stat =~ /__alarm__ignore__\(.*\)/s;
+          info("dns: bad dns reply: %s", $eval_stat);
+        }
+      };
+    }
   }
 
   # Bail out if no good uri found
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.