From 7625d08c55a7645eb48afdee8dd05e49d09a3d06 Mon Sep 17 00:00:00 2001 From: Ben Firshman Date: Thu, 16 Oct 2014 12:18:25 +0100 Subject: [PATCH] Stop TLS sockets being closed when attaching When calling attach_socket, the response is garbage collected, which triggers a close method on the file object, closing the socket. This stop the response from being garbage collected until we've finished with the underlying socket. Fixes #350 Signed-off-by: Ben Firshman --- docker/client.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/client.py b/docker/client.py index 1ff43cc4ec..0da71b3c3a 100644 --- a/docker/client.py +++ b/docker/client.py @@ -259,9 +259,11 @@ def _create_websocket_connection(self, url): def _get_raw_response_socket(self, response): self._raise_for_status(response) if six.PY3: - return response.raw._fp.fp.raw._sock + sock = response.raw._fp.fp.raw._sock else: - return response.raw._fp.fp._sock + sock = response.raw._fp.fp._sock + sock._response = response + return sock def _stream_helper(self, response): """Generator for data coming from a chunked-encoded HTTP response."""