Fix Thrift perl framedtransport
Reviewed By: jake luciani
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665117 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/perl/lib/Thrift/FramedTransport.pm b/lib/perl/lib/Thrift/FramedTransport.pm
index 43e7b6f..0cf2f3b 100644
--- a/lib/perl/lib/Thrift/FramedTransport.pm
+++ b/lib/perl/lib/Thrift/FramedTransport.pm
@@ -73,17 +73,19 @@
#
sub read
{
+
my $self = shift;
my $len = shift;
- unless($self->{read}) {
+ if (!$self->{read}) {
return $self->{transport}->read($len);
}
- if (length($self->{rBuf}) > 0) {
+ if (length($self->{rBuf}) == 0) {
$self->_readFrame();
}
+
# Just return full buff
if ($len > length($self->{rBuf})) {
my $out = $self->{rBuf};
@@ -105,7 +107,7 @@
my $self = shift;
my $buf = $self->{transport}->readAll(4);
my @val = unpack('N', $buf);
- my $sz = $val[1];
+ my $sz = $val[0];
$self->{rBuf} = $self->{transport}->readAll($sz);
}