From 7bf11c93ba9ffa7be228aa0a0c62155c6fc80e35 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Wed, 16 Aug 2017 17:31:36 -0700 Subject: Fix handling of non-multiplexed (TTY) streams over upgraded sockets Signed-off-by: Joffrey F --- docker/utils/socket.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'docker/utils/socket.py') diff --git a/docker/utils/socket.py b/docker/utils/socket.py index 4080f25..54392d2 100644 --- a/docker/utils/socket.py +++ b/docker/utils/socket.py @@ -75,5 +75,24 @@ def frames_iter(socket): break while n > 0: result = read(socket, n) - n -= len(result) + if result is None: + continue + data_length = len(result) + if data_length == 0: + # We have reached EOF + return + n -= data_length yield result + + +def socket_raw_iter(socket): + """ + Returns a generator of data read from the socket. + This is used for non-multiplexed streams. + """ + while True: + result = read(socket) + if len(result) == 0: + # We have reached EOF + return + yield result -- cgit v1.2.1