From 7ea5dd79d01be60f1103385efde965e00becd0d1 Mon Sep 17 00:00:00 2001 From: Gilles Darold Date: Fri, 15 Sep 2017 23:59:00 +0200 Subject: [PATCH] Fix duplicate of recipient entries in detailled view when the message sent was also been registered as spam. Thanks to Paul Cantle for the report. --- cgi-bin/sa_report.cgi | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/cgi-bin/sa_report.cgi b/cgi-bin/sa_report.cgi index cb9da62..868a2db 100755 --- a/cgi-bin/sa_report.cgi +++ b/cgi-bin/sa_report.cgi @@ -4727,7 +4727,9 @@ sub get_sender_detail next if (!exists $local_stat{$data[1]}); $local_stat{$data[1]}{hour} = $data[0] if (!exists $local_stat{$data[1]}{hour}); $local_stat{$data[1]}{sender} = $data[2] if (!exists $local_stat{$data[1]}{sender}); - push(@{$local_stat{$data[1]}{rcpt}}, $data[3]); + if (!grep(/^$data[3]$/i, @{$local_stat{$data[1]}{rcpt}})) { + push(@{$local_stat{$data[1]}{rcpt}}, $data[3]); + } $local_stat{$data[1]}{spam} = $data[4]; } close(IN); @@ -4860,7 +4862,9 @@ sub get_recipient_detail next if (!exists $local_stat{$data[1]}); $local_stat{$data[1]}{hour} = $data[0] if (!exists $local_stat{$data[1]}{hour}); $local_stat{$data[1]}{sender} = $data[2] if (!exists $local_stat{$data[1]}{sender}); - push(@{$local_stat{$data[1]}{rcpt}}, $data[3]); + if (!grep(/^$data[3]$/i, @{$local_stat{$data[1]}{rcpt}})) { + push(@{$local_stat{$data[1]}{rcpt}}, $data[3]); + } $local_stat{$data[1]}{spam} = $data[4]; } close(IN); @@ -5124,9 +5128,11 @@ sub get_spaminfo_detail my @data = split(/:/, $l); next if (!exists $local_stat{$data[1]}); if ($data[4] !~ /Queued/) { - push(@{$local_stat{$data[1]}{rcpt}}, $data[2]); - push(@{$local_stat{$data[1]}{rcpt_relay}}, $data[3]); - push(@{$local_stat{$data[1]}{status}}, $data[4]); + if (!grep(/^$data[2]$/i, @{$local_stat{$data[1]}{rcpt}})) { + push(@{$local_stat{$data[1]}{rcpt}}, $data[2]); + push(@{$local_stat{$data[1]}{rcpt_relay}}, $data[3]); + push(@{$local_stat{$data[1]}{status}}, $data[4]); + } } } close(IN);