shlist

share and manage lists between multiple people
Log | Files | Refs

commit e09f8471807937a9efaac6f1cdc0da1469923995
parent aeabc3d2a7cff0a1ca8e1b3861cefc2f7ab07983
Author: Kyle Milz <kyle@0x30.net>
Date:   Sun, 24 Jan 2016 20:37:29 -0700

tests: sync read_all improvements from sl

Diffstat:
Mserver/tests/client.pm | 15++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/server/tests/client.pm b/server/tests/client.pm @@ -218,17 +218,18 @@ sub recv_msg { } sub read_all { - my ($self, $bytes_left) = @_; + my ($self, $bytes_total) = @_; my $data; - while ($bytes_left > 0) { - my $bytes_read = $self->{sock}->sysread(my $tmp, $bytes_left); + my $bytes_read = 0; + while ($bytes_total > 0) { + my $read = $self->{sock}->sysread($data, $bytes_total, $bytes_read); - fail "read failed: $!" unless (defined $bytes_read); - fail "read EOF on socket" if ($bytes_read == 0); + fail "read failed: $!" unless (defined $read); + fail "read EOF on socket" if ($read == 0); - $data .= $tmp; - $bytes_left -= $bytes_read; + $bytes_total -= $read; + $bytes_read += $read; } return $data;