From 90ab177f80e122a6bdbd29a77fac3a7fa8e8a021 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Tue, 5 Feb 2013 23:08:47 -0800 Subject: [PATCH] Give better responses to RPC read failures --- web-lib-funcs.pl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/web-lib-funcs.pl b/web-lib-funcs.pl index 052572d93..9f81076f3 100755 --- a/web-lib-funcs.pl +++ b/web-lib-funcs.pl @@ -6484,9 +6484,16 @@ if ($serv->{'fast'} || !$sn) { my $rlen = int($rstr); my ($fromstr, $got); while(length($fromstr) < $rlen) { - return &$main::remote_error_handler( - "Failed to read from fastrpc.cgi : $!") - if (read($fh, $got, $rlen - length($fromstr)) <= 0); + my $want = $rlen - length($fromstr); + my $readrv = read($fh, $got, $want); + if ($readrv < 0 || !defined($readrv)) { + return &$main::remote_error_handler( + "Failed to read from fastrpc.cgi : $!") + } + elsif ($readrv == 0) { + return &$main::remote_error_handler( + "Read of $want bytes from fastrpc.cgi failed") + } $fromstr .= $got; } my $from = &unserialise_variable($fromstr);