diff options
author | T Jake Luciani <jake@apache.org> | 2009-07-31 01:31:00 +0000 |
---|---|---|
committer | T Jake Luciani <jake@apache.org> | 2009-07-31 01:31:00 +0000 |
commit | 4184e2be546d19ece83c8132a03f08a5de6656a6 (patch) | |
tree | 5067ad117f668e45d6b7b6b389334f2c5086e991 /lib/perl | |
parent | 684b4f9aeeef501ff45790b4ff8fb574211a7797 (diff) | |
download | thrift-4184e2be546d19ece83c8132a03f08a5de6656a6.tar.gz |
THRIFT-554: Perl improper namespace check for exception handling and writeMessageEnd missing on processor calls
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@799484 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'lib/perl')
-rw-r--r-- | lib/perl/lib/Thrift/MemoryBuffer.pm | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/perl/lib/Thrift/MemoryBuffer.pm b/lib/perl/lib/Thrift/MemoryBuffer.pm index 32f144241..0b286878e 100644 --- a/lib/perl/lib/Thrift/MemoryBuffer.pm +++ b/lib/perl/lib/Thrift/MemoryBuffer.pm @@ -109,6 +109,26 @@ sub read return $ret; } +sub readAll +{ + my $self = shift; + my $len = shift; + + my $avail = ($self->{wPos} - $self->{rPos}); + if ($avail < $len) { + die new TTransportException("Attempt to readAll($len) found only $avail available"); + } + + my $data = ''; + my $got = 0; + + while (($got = length($data)) < $len) { + $data .= $self->read($len - $got); + } + + return $data; +} + sub write { my $self = shift; |