diff options
author | Joffrey F <joffrey@docker.com> | 2017-08-16 17:31:36 -0700 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2017-08-16 18:13:12 -0700 |
commit | 7bf11c93ba9ffa7be228aa0a0c62155c6fc80e35 (patch) | |
tree | 3c0f9f4223bd727171079673de846fa002cca1ab /docker/utils/socket.py | |
parent | 6f6c29ce36128d712109ff27d557d67dae087da3 (diff) | |
download | docker-py-fix_upgraded_tty_streams.tar.gz |
Fix handling of non-multiplexed (TTY) streams over upgraded socketsfix_upgraded_tty_streams
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'docker/utils/socket.py')
-rw-r--r-- | docker/utils/socket.py | 21 |
1 files changed, 20 insertions, 1 deletions
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 |