mirror of https://github.com/docker/docker-py.git
Merge pull request #184 from ibuildthecloud/fix-chunking
Use Requests.iter_lines to fix #176
This commit is contained in:
commit
7e105f5727
|
@ -233,17 +233,8 @@ class Client(requests.Session):
|
|||
|
||||
def _stream_helper(self, response):
|
||||
"""Generator for data coming from a chunked-encoded HTTP response."""
|
||||
socket_fp = self._get_raw_response_socket(response)
|
||||
socket_fp.setblocking(1)
|
||||
socket = socket_fp.makefile()
|
||||
while True:
|
||||
size = int(socket.readline(), 16)
|
||||
if size <= 0:
|
||||
break
|
||||
data = socket.readline()
|
||||
if not data:
|
||||
break
|
||||
yield data
|
||||
for line in response.iter_lines(chunk_size=32):
|
||||
yield line
|
||||
|
||||
def _multiplexed_buffer_helper(self, response):
|
||||
"""A generator of multiplexed data blocks read from a buffered
|
||||
|
@ -349,6 +340,9 @@ class Client(requests.Session):
|
|||
else:
|
||||
context = utils.tar(path)
|
||||
|
||||
if utils.compare_version('1.8', self._version) >= 0:
|
||||
stream = True
|
||||
|
||||
u = self._url('/build')
|
||||
params = {
|
||||
't': tag,
|
||||
|
@ -372,7 +366,7 @@ class Client(requests.Session):
|
|||
if context is not None:
|
||||
context.close()
|
||||
|
||||
if stream or utils.compare_version('1.8', self._version) >= 0:
|
||||
if stream:
|
||||
return self._stream_helper(response)
|
||||
else:
|
||||
output = self._result(response)
|
||||
|
|
Loading…
Reference in New Issue