From ec140944be7e23f7eece19d83911b45dde9d85a5 Mon Sep 17 00:00:00 2001 From: Didier Gautheron Date: Thu, 24 Sep 2020 10:13:08 +0200 Subject: [PATCH] Bug 26528: Z39.50/SRU ignore invalid replies When searching for authorities if an authorities server reply has invalid records none are displayed. At least french BNF SRU server doesn't fully follow norm and can return an error confusing Koha protocol handler which then returns an empty MARC record. This patch silently removed bogus records. To Test: 1- Add BNF SRU server 2- Go to authorities page 3- Add an authority 4- Search for keyword(any) droits de l'homme 5- No result (Internal Server Error) 6- Apply patch 7- restart starman 8- redo 4 9- Many records are displayed Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Jonathan Druart (cherry picked from commit d8f34430d17fd70e65318532c27dceed184eb7bc) Signed-off-by: Fridolin Somers (cherry picked from commit cefb8bcf0c58ca31f48b45a693c831a1bf28d0bf) Signed-off-by: Andrew Fuerste-Henry --- C4/Breeding.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/C4/Breeding.pm b/C4/Breeding.pm index 8287cf4b6f..c19e87b1e3 100644 --- a/C4/Breeding.pm +++ b/C4/Breeding.pm @@ -618,6 +618,8 @@ sub Z3950SearchAuth { my $heading; my $heading_authtype_code; $heading_authtype_code = GuessAuthTypeCode($marcrecord); + next if ( not defined $heading_authtype_code ) ; + $heading = C4::AuthoritiesMarc::GetAuthorizedHeading({ record => $marcrecord }); my $breedingid = ImportBreedingAuth( $marcrecord, $serverhost[$k], $encoding[$k], $heading ); -- 2.39.5