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:
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;