From: Mark Slee Date: Wed, 16 May 2007 02:44:21 +0000 (+0000) Subject: Fix Thrift perl framedtransport X-Git-Tag: 0.2.0~1355 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=8168706fe9f076af0e6dd299d8fde628a6a854ec;p=common%2Fthrift.git 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 43e7b6f6..0cf2f3b1 100644 --- a/lib/perl/lib/Thrift/FramedTransport.pm +++ b/lib/perl/lib/Thrift/FramedTransport.pm @@ -73,17 +73,19 @@ sub close # 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 @@ sub _readFrame 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); }