From d4d64df0879d77b66cedb42fec519e25f9f33ae5 Mon Sep 17 00:00:00 2001 From: Konstantin Grachev Date: Tue, 26 Jan 2021 17:03:21 +0300 Subject: [PATCH] Size must be greater then max output buffer --- src/Connection.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Connection.php b/src/Connection.php index ecf6e94..f37b920 100644 --- a/src/Connection.php +++ b/src/Connection.php @@ -190,12 +190,18 @@ abstract class Connection throw new ConnectionFail('Probably connection lost'); } - $buffer = new ByteBuffer( - $socket->read( - // @phpstan-ignore-next-line - unpack('N', $size)[1] - ) - ); + $buffer = new ByteBuffer(); + + /** @phpstan-ignore-next-line */ + $size = unpack('N', $size)[1]; + + do { + $chunk = $socket->read($size); + + $buffer->append($chunk); + + $size -= \strlen($chunk); + } while (0 < $size); $this->logger->debug('Received buffer: '.addcslashes($buffer->bytes(), PHP_EOL));