From 543271fa04b40473f8bded9e1422df064dcbe9ab Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Wed, 24 Jan 2018 09:20:12 +0000 Subject: [PATCH 1/3] Bug 20254 Do not ingest files with duplicate filenames If the supplier delivers the same file twice we are unable to rename it on the second occurence causing us to download and process it infinitely. Check that downloaded filenames are unique against those on file and reject processing if a duplicate. This patch delays this check to the ingest stage so that the same code is processed irrespective of transport --- Koha/Edifact/Transport.pm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Koha/Edifact/Transport.pm b/Koha/Edifact/Transport.pm index 036dbc2ae9..f53017bc39 100644 --- a/Koha/Edifact/Transport.pm +++ b/Koha/Edifact/Transport.pm @@ -182,6 +182,15 @@ sub sftp_download { sub ingest { my ( $self, $msg_hash, @downloaded_files ) = @_; foreach my $f (@downloaded_files) { + + # Check file has not been downloaded already + my $existing_file = $self->{schema}->resultset('EdifactMessage') + ->find( { filename => $f, } ); + if ($existing_file) { + carp "skipping ingest of $f : filename exists"; + next; + } + $msg_hash->{filename} = $f; my $file_content = read_file( "$self->{working_dir}/$f", binmode => ':raw' ); -- 2.19.2