diff options
author | Joffrey F <joffrey@docker.com> | 2016-10-11 17:19:20 -0700 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2016-10-12 13:23:27 -0700 |
commit | c76ec15d9b58299aabb55b2c6632f08eb51d520c (patch) | |
tree | 3e1e63cfd425ac0ec8361dd159d44670bd85ae29 /docker/utils/socket.py | |
parent | 6f7392ea09751be65821a0d539f6834e3f6ce31d (diff) | |
download | docker-py-npipe-advanced.tar.gz |
Several fixes to npipe supportnpipe-advanced
- Fix _get_raw_response_socket to always return the NpipeSocket object
- Override NpipeHTTPConnectionPool._get_conn to avoid crash in urllib3
- Fix NpipeSocket.recv_into for Python 2
- Do not call select() on NpipeSocket objects
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'docker/utils/socket.py')
-rw-r--r-- | docker/utils/socket.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/docker/utils/socket.py b/docker/utils/socket.py index ed34350..164b845 100644 --- a/docker/utils/socket.py +++ b/docker/utils/socket.py @@ -5,6 +5,11 @@ import struct import six +try: + from ..transport import NpipeSocket +except ImportError: + NpipeSocket = type(None) + class SocketError(Exception): pass @@ -14,10 +19,12 @@ def read(socket, n=4096): """ Reads at most n bytes from socket """ + recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK) # wait for data to become available - select.select([socket], [], []) + if not isinstance(socket, NpipeSocket): + select.select([socket], [], []) try: if hasattr(socket, 'recv'): |