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/11/28 10:04:42 UTC

svn commit: r1870552 - in /spamassassin: branches/3.4/lib/Mail/SpamAssassin/PerMsgStatus.pm trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm

Author: hege
Date: Thu Nov 28 10:04:41 2019
New Revision: 1870552

URL: http://svn.apache.org/viewvc?rev=1870552&view=rev
Log:
Fix LASTEXTERNAL* tag usage affecting askdns and action_depends_on_tags

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

Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=1870552&r1=1870551&r2=1870552&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/PerMsgStatus.pm Thu Nov 28 10:04:41 2019
@@ -135,19 +135,19 @@ BEGIN {
 
     LASTEXTERNALIP => sub {
       my $pms = shift;
-      my $lasthop = $pms->{relays_external}->[0];
+      my $lasthop = $pms->{msg}->{metadata}->{relays_external}->[0];
       $lasthop ? $lasthop->{ip} : '';
     },
 
     LASTEXTERNALRDNS => sub {
       my $pms = shift;
-      my $lasthop = $pms->{relays_external}->[0];
+      my $lasthop = $pms->{msg}->{metadata}->{relays_external}->[0];
       $lasthop ? $lasthop->{rdns} : '';
     },
 
     LASTEXTERNALHELO => sub {
       my $pms = shift;
-      my $lasthop = $pms->{relays_external}->[0];
+      my $lasthop = $pms->{msg}->{metadata}->{relays_external}->[0];
       $lasthop ? $lasthop->{helo} : '';
     },
 
@@ -1475,10 +1475,14 @@ sub action_depends_on_tags {
   push(@{$self->{tagrun_subs}}, [$code,@args]);
   my $action_ind = $#{$self->{tagrun_subs}};
 
-  # list dependency tag names which are not already satistied
-  my @blocking_tags =
-    grep(!defined $self->{tag_data}{$_} || $self->{tag_data}{$_} eq '',
-         @dep_tags);
+  # list dependency tag names which are not already satisfied
+  my @blocking_tags;
+  foreach (@dep_tags) {
+    my $data = $self->get_tag($_);
+    if (!defined $data || $data eq '') {
+      push @blocking_tags, $_;
+    }
+  }
 
   $self->{tagrun_tagscnt}[$action_ind] = scalar @blocking_tags;
   $self->{tagrun_actions}{$_}[$action_ind] = 1  for @blocking_tags;
@@ -1822,10 +1826,6 @@ sub extract_message_metadata {
   $self->set_tag('RELAYSUNTRUSTED', $self->{relays_untrusted_str});
   $self->set_tag('RELAYSINTERNAL',  $self->{relays_internal_str});
   $self->set_tag('RELAYSEXTERNAL',  $self->{relays_external_str});
-  my $lasthop = $self->{relays_external}->[0];
-  if ($lasthop) {
-    $self->set_tag('LASTEXTERNALIP',  $lasthop->{ip});
-  }
   $self->set_tag('LANGUAGES', $self->{msg}->get_metadata("X-Languages"));
 
   # This should happen before we get called, but just in case.

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=1870552&r1=1870551&r2=1870552&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Thu Nov 28 10:04:41 2019
@@ -138,19 +138,19 @@ BEGIN {
 
     LASTEXTERNALIP => sub {
       my $pms = shift;
-      my $lasthop = $pms->{relays_external}->[0];
+      my $lasthop = $pms->{msg}->{metadata}->{relays_external}->[0];
       $lasthop ? $lasthop->{ip} : '';
     },
 
     LASTEXTERNALRDNS => sub {
       my $pms = shift;
-      my $lasthop = $pms->{relays_external}->[0];
+      my $lasthop = $pms->{msg}->{metadata}->{relays_external}->[0];
       $lasthop ? $lasthop->{rdns} : '';
     },
 
     LASTEXTERNALHELO => sub {
       my $pms = shift;
-      my $lasthop = $pms->{relays_external}->[0];
+      my $lasthop = $pms->{msg}->{metadata}->{relays_external}->[0];
       $lasthop ? $lasthop->{helo} : '';
     },
 
@@ -1900,10 +1900,6 @@ sub extract_message_metadata {
   $self->set_tag('RELAYSUNTRUSTED', $self->{relays_untrusted_str});
   $self->set_tag('RELAYSINTERNAL',  $self->{relays_internal_str});
   $self->set_tag('RELAYSEXTERNAL',  $self->{relays_external_str});
-  my $lasthop = $self->{relays_external}->[0];
-  if ($lasthop) {
-    $self->set_tag('LASTEXTERNALIP',  $lasthop->{ip});
-  }
   $self->set_tag('LANGUAGES', $self->{msg}->get_metadata("X-Languages"));
 
   # This should happen before we get called, but just in case.