diff options
Diffstat (limited to 'lib/Net/Cmd.pm')
-rw-r--r-- | lib/Net/Cmd.pm | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/lib/Net/Cmd.pm b/lib/Net/Cmd.pm index 2bb790d..0b1bbe1 100644 --- a/lib/Net/Cmd.pm +++ b/lib/Net/Cmd.pm @@ -335,24 +335,20 @@ sub getline { my $rin = ""; vec($rin, $fd, 1) = 1; - my $buf; - until (scalar(@{${*$cmd}{'net_cmd_lines'}})) { my $timeout = $cmd->timeout || undef; my $rout; my $select_ret = select($rout = $rin, undef, undef, $timeout); if ($select_ret > 0) { - unless (sysread($cmd, $buf = "", 1024)) { + unless (sysread($cmd, $partial, 1024, length($partial))) { my $err = $!; $cmd->close; $cmd->_set_status_closed($err); return; } - substr($buf, 0, 0) = $partial; ## prepend from last sysread - - my @buf = split(/\015?\012/, $buf, -1); ## break into lines + my @buf = split(/\015?\012/, $partial, -1); ## break into lines $partial = pop @buf; |