From fe7dbc291eb0387ff07ee2a19e8107a02c877aa4 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Wed, 8 Nov 2017 16:01:19 -0800 Subject: Fix broken unbuffered streaming with Py3 Signed-off-by: Joffrey F --- docker/transport/unixconn.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'docker/transport/unixconn.py') diff --git a/docker/transport/unixconn.py b/docker/transport/unixconn.py index 7cb8771..cc35d00 100644 --- a/docker/transport/unixconn.py +++ b/docker/transport/unixconn.py @@ -21,13 +21,12 @@ RecentlyUsedContainer = urllib3._collections.RecentlyUsedContainer class UnixHTTPResponse(httplib.HTTPResponse, object): def __init__(self, sock, *args, **kwargs): disable_buffering = kwargs.pop('disable_buffering', False) + if six.PY2: + # FIXME: We may need to disable buffering on Py3 as well, + # but there's no clear way to do it at the moment. See: + # https://github.com/docker/docker-py/issues/1799 + kwargs['buffering'] = not disable_buffering super(UnixHTTPResponse, self).__init__(sock, *args, **kwargs) - if disable_buffering is True: - # We must first create a new pointer then close the old one - # to avoid closing the underlying socket. - new_fp = sock.makefile('rb', 0) - self.fp.close() - self.fp = new_fp class UnixHTTPConnection(httplib.HTTPConnection, object): -- cgit v1.2.1