From 43158cfe3fd9299c4c47536cefd4d683d627d6a1 Mon Sep 17 00:00:00 2001 From: Aanand Prasad Date: Wed, 13 Jul 2016 16:06:41 -0400 Subject: [PATCH] Move read_loop() into docker.utils.socket.read_iter() Signed-off-by: Aanand Prasad --- docker/client.py | 16 ++++------------ docker/utils/socket.py | 7 +++++++ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/docker/client.py b/docker/client.py index 53cc5c29..7df587c7 100644 --- a/docker/client.py +++ b/docker/client.py @@ -32,7 +32,7 @@ from .ssladapter import ssladapter from .tls import TLSConfig from .transport import UnixAdapter from .utils import utils, check_resource, update_headers, kwargs_from_env -from .utils.socket import read_socket, next_packet_size +from .utils.socket import read_socket, next_packet_size, read_iter try: from .transport import NpipeAdapter except ImportError: @@ -310,20 +310,12 @@ class Client( yield out def _read_from_socket(self, response, stream): - def read_loop(socket): - n = next_packet_size(socket) - while n > 0: - yield read_socket(socket, n) - n = next_packet_size(socket) - socket = self._get_raw_response_socket(response) + if stream: - return read_loop(socket) + return read_iter(socket) else: - data = six.binary_type() - for d in read_loop(socket): - data += d - return data + return six.binary_type().join(read_iter(socket)) def _disable_socket_timeout(self, socket): """ Depending on the combination of python version and whether we're diff --git a/docker/utils/socket.py b/docker/utils/socket.py index f81d2f5d..2fb1180d 100644 --- a/docker/utils/socket.py +++ b/docker/utils/socket.py @@ -47,3 +47,10 @@ def read_data(socket, packet_size): assert False, "Failed trying to read in the data" data += next_data return data + + +def read_iter(socket): + n = next_packet_size(socket) + while n > 0: + yield read_socket(socket, n) + n = next_packet_size(socket)