You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2019/08/06 10:09:01 UTC

svn commit: r1864489 - in /spamassassin: branches/3.4/lib/Mail/SpamAssassin/Plugin/DNSEval.pm branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm

Author: hege
Date: Tue Aug  6 10:09:01 2019
New Revision: 1864489

URL: http://svn.apache.org/viewvc?rev=1864489&view=rev
Log:
Fix some dns availability checks

Modified:
    spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
    spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm

Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/DNSEval.pm?rev=1864489&r1=1864488&r2=1864489&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/DNSEval.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/DNSEval.pm Tue Aug  6 10:09:01 2019
@@ -233,7 +233,6 @@ sub check_rbl_backend {
   # First check that DNS is available, if not do not perform this check
   return 0 if $self->{main}->{conf}->{skip_rbl_checks};
   return 0 unless $pms->is_dns_available();
-  $pms->load_resolver();
 
   if (($rbl_server !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) &&
       (index($rbl_server, '.') >= 0) &&
@@ -404,6 +403,9 @@ sub check_rbl_from_host {
 sub check_rbl_headers {
   my ($self, $pms, $rule, $set, $rbl_server, $subtest, $test_headers) = @_;
 
+  return 0 if $self->{main}->{conf}->{skip_rbl_checks};
+  return 0 if !$pms->is_dns_available();
+
   my @env_hdr;
   my $conf = $self->{main}->{conf};
 
@@ -464,8 +466,8 @@ sub check_rbl_ns_from {
   my $domain;
   my @nshost = ();
 
+  return 0 if $self->{main}->{conf}->{skip_rbl_checks};
   return 0 unless $pms->is_dns_available();
-  $pms->load_resolver();
 
   for my $from ($pms->get('EnvelopeFrom:addr')) {
     next unless defined $from;
@@ -600,8 +602,6 @@ sub _check_rbl_addresses {
   }
   return unless scalar keys %hosts;
 
-  $pms->load_resolver();
-
   if (($rbl_server !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) &&
       (index($rbl_server, '.') >= 0) &&
       ($rbl_server !~ /\.$/)) {
@@ -623,6 +623,9 @@ sub _check_rbl_addresses {
 sub check_dns_sender {
   my ($self, $pms, $rule) = @_;
 
+  return 0 if $self->{main}->{conf}->{skip_rbl_checks};
+  return 0 unless $pms->is_dns_available();
+
   my $host;
   for my $from ($pms->get('EnvelopeFrom:addr',undef)) {
     next unless defined $from;
@@ -635,11 +638,6 @@ sub check_dns_sender {
   }
   return 0 unless defined $host;
 
-  # First check that DNS is available, if not do not perform this check
-  # TODO: need a way to skip DNS checks as a whole in configuration
-  return 0 unless $pms->is_dns_available();
-  $pms->load_resolver();
-
   if ($host eq 'compiling.spamassassin.taint.org') {
     # only used when compiling
     return 0;

Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm?rev=1864489&r1=1864488&r2=1864489&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HashBL.pm Tue Aug  6 10:09:01 2019
@@ -234,6 +234,7 @@ sub finish_parsing_end {
   my ($self, $opts) = @_;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$opts->{permsgstatus}->is_dns_available();
 
   # valid_tlds_re will be available at finish_parsing_end, compile it now,
   # we only need to do it once and before possible forking
@@ -371,6 +372,7 @@ sub check_hashbl_emails {
   my ($self, $pms, $list, $opts, $from, $subtest, $acl) = @_;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$pms->is_dns_available();
   return 0 if !$self->{email_re};
 
   my $rulename = $pms->get_current_eval_rule_name();
@@ -448,6 +450,7 @@ sub check_hashbl_uris {
   my @filtered_uris;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$pms->is_dns_available();
 
   my $rulename = $pms->get_current_eval_rule_name();
 
@@ -512,6 +515,7 @@ sub check_hashbl_bodyre {
   my ($self, $pms, $bodyref, $list, $opts, $re, $subtest) = @_;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$pms->is_dns_available();
 
   my $rulename = $pms->get_current_eval_rule_name();
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm?rev=1864489&r1=1864488&r2=1864489&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm Tue Aug  6 10:09:01 2019
@@ -164,6 +164,9 @@ sub parsed_metadata {
 
   my $pms = $opts->{permsgstatus};
 
+  return 1 if $self->{main}->{conf}->{skip_rbl_checks};
+  return 1 if !$pms->is_dns_available();
+
   # Process relaylists only once, not everytime in check_rbl_backend
   #
   # ok, make a list of all the IPs in the untrusted set
@@ -371,6 +374,7 @@ sub check_rbl {
 
   return 0 if $self->{main}->{conf}->{skip_rbl_checks};
   return 0 if !$pms->is_dns_available();
+
   $self->check_rbl_backend($pms, $rule, $set, $rbl_server, 'A', $subtest);
 }
 
@@ -403,6 +407,9 @@ sub check_rbl_from_host {
 sub check_rbl_headers {
   my ($self, $pms, $rule, $set, $rbl_server, $subtest, $test_headers) = @_;
 
+  return 0 if $self->{main}->{conf}->{skip_rbl_checks};
+  return 0 if !$pms->is_dns_available();
+
   my @env_hdr;
   my $conf = $self->{main}->{conf};
 
@@ -469,6 +476,7 @@ sub check_rbl_ns_from {
   my $domain;
   my @nshost = ();
 
+  return 0 if $self->{main}->{conf}->{skip_rbl_checks};
   return 0 unless $pms->is_dns_available();
 
   for my $from ($pms->get('EnvelopeFrom:addr')) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm?rev=1864489&r1=1864488&r2=1864489&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm Tue Aug  6 10:09:01 2019
@@ -235,6 +235,7 @@ sub finish_parsing_end {
   my ($self, $opts) = @_;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$pms->is_dns_available();
 
   # valid_tlds_re will be available at finish_parsing_end, compile it now,
   # we only need to do it once and before possible forking
@@ -372,6 +373,7 @@ sub check_hashbl_emails {
   my ($self, $pms, $list, $opts, $from, $subtest, $acl) = @_;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$pms->is_dns_available();
   return 0 if !$self->{email_re};
 
   my $rulename = $pms->get_current_eval_rule_name();
@@ -449,6 +451,7 @@ sub check_hashbl_uris {
   my @filtered_uris;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$pms->is_dns_available();
 
   my $rulename = $pms->get_current_eval_rule_name();
 
@@ -513,6 +516,7 @@ sub check_hashbl_bodyre {
   my ($self, $pms, $bodyref, $list, $opts, $re, $subtest) = @_;
 
   return 0 if !$self->{hashbl_available};
+  return 0 if !$pms->is_dns_available();
 
   my $rulename = $pms->get_current_eval_rule_name();