From: miker Date: Thu, 20 Dec 2007 14:26:10 +0000 (+0000) Subject: make single-service errors less destructive, and use direct array for service name... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=db5aeb46480f1c8cd33036cc138e345f2946d7db;p=Evergreen.git make single-service errors less destructive, and use direct array for service name list git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8247 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm b/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm index 2e43fcf95a..5813c405a1 100755 --- a/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm @@ -149,6 +149,7 @@ sub do_class_search { my @connections; my @results; + my @services; for (my $i = 0; $i < @{$$args{service}}; $i++) { my %tmp_args = %$args; @@ -171,12 +172,14 @@ sub do_class_search { $tmp_args{query} = compile_query('and', $tmp_args{service}, $tmp_args{search}); my $res = $self->do_service_search( $conn, $auth, \%tmp_args ); - return $res if $U->event_code($res); + if ($U->event_code($res)) { + $conn->respond($res) if $U->event_code($res); + next; + } + push @services, $tmp_args{service}; push @results, $res->{result}; push @connections, $res->{connection}; - - $logger->debug("z3950: Result object: $results[$i], Connection object: $connections[$i]"); } $logger->debug("z3950: Connections created"); @@ -186,7 +189,7 @@ sub do_class_search { $logger->debug("z3950: Received event $ev"); if ($ev == OpenILS::Utils::ZClient::EVENT_END()) { my $munged = process_results( $results[$index - 1], $$args{limit}, $$args{offset} ); - $$munged{service} = $$args{service}[$index - 1]; + $$munged{service} = $services[$index - 1]; $conn->respond($munged); } }