From 4f19e29cae9192212035c480ff864687fae60d17 Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 26 Jan 2007 20:25:27 +0000 Subject: [PATCH] added support for streamed responses git-svn-id: svn://svn.open-ils.org/ILS/trunk@6823 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/WWW/XMLRPCGateway.pm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/WWW/XMLRPCGateway.pm b/Open-ILS/src/perlmods/OpenILS/WWW/XMLRPCGateway.pm index 4679e44fda..1ff6510962 100644 --- a/Open-ILS/src/perlmods/OpenILS/WWW/XMLRPCGateway.pm +++ b/Open-ILS/src/perlmods/OpenILS/WWW/XMLRPCGateway.pm @@ -80,10 +80,22 @@ sub handler { sub run_request { - my( $service, $method, @args ) = @_; - my $ses = OpenSRF::AppSession->create( $service ); - my $data = $ses->request($method, @args)->gather(1); - return wrap_perl($data); + my( $service, $method, @args ) = @_; + my $ses = OpenSRF::AppSession->create( $service ); + #my $data = $ses->request($method, @args)->gather(1); + + my $data = []; + my $req = $ses->request($method, @args); + while( my $resp = $req->recv( timeout => 300 ) ) { + if( $req->failed ) { + push( @$data, $req->failed ); + last; + } + push( @$data, $resp->content ); + } + + return [] if scalar(@$data) == 0; + return wrap_perl($data); } # These should probably be moved out to a library somewhere -- 2.11.0