mirror of https://github.com/docker/docker-py.git
Merge a299f2c8ab
into db7f8b8bb6
This commit is contained in:
commit
1e98c48281
|
@ -1,3 +1,4 @@
|
||||||
|
import io
|
||||||
import json
|
import json
|
||||||
import struct
|
import struct
|
||||||
import urllib
|
import urllib
|
||||||
|
@ -428,6 +429,9 @@ class APIClient(
|
||||||
"""
|
"""
|
||||||
socket = self._get_raw_response_socket(response)
|
socket = self._get_raw_response_socket(response)
|
||||||
|
|
||||||
|
if isinstance(response.raw._fp.fp, io.BufferedReader):
|
||||||
|
socket = response.raw._fp.fp
|
||||||
|
|
||||||
gen = frames_iter(socket, tty)
|
gen = frames_iter(socket, tty)
|
||||||
|
|
||||||
if demux:
|
if demux:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import errno
|
import errno
|
||||||
|
import io
|
||||||
import os
|
import os
|
||||||
import select
|
import select
|
||||||
import socket as pysocket
|
import socket as pysocket
|
||||||
|
@ -30,7 +31,7 @@ def read(socket, n=4096):
|
||||||
|
|
||||||
recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK)
|
recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK)
|
||||||
|
|
||||||
if not isinstance(socket, NpipeSocket):
|
if not isinstance(socket, NpipeSocket) and not isinstance(socket, io.BufferedReader):
|
||||||
if not hasattr(select, "poll"):
|
if not hasattr(select, "poll"):
|
||||||
# Limited to 1024
|
# Limited to 1024
|
||||||
select.select([socket], [], [])
|
select.select([socket], [], [])
|
||||||
|
@ -42,7 +43,7 @@ def read(socket, n=4096):
|
||||||
try:
|
try:
|
||||||
if hasattr(socket, 'recv'):
|
if hasattr(socket, 'recv'):
|
||||||
return socket.recv(n)
|
return socket.recv(n)
|
||||||
if isinstance(socket, pysocket.SocketIO):
|
if isinstance(socket, pysocket.SocketIO) or isinstance(socket, io.BufferedReader):
|
||||||
return socket.read(n)
|
return socket.read(n)
|
||||||
return os.read(socket.fileno(), n)
|
return os.read(socket.fileno(), n)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
|
|
Loading…
Reference in New Issue