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.