From 266a1044deb9a085ed43dccdc6cfa0723e5142b0 Mon Sep 17 00:00:00 2001 From: Arnaud Porterie Date: Wed, 3 Dec 2014 23:40:16 -0800 Subject: [PATCH] Fix interactive exec over TLS The code no longer assumes a net.TCPConn underlying the HTTP connection in order to close attached streams. Signed-off-by: Arnaud Porterie --- api/server/server.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/api/server/server.go b/api/server/server.go index bf5318c0f4..4465e8d4a0 100644 --- a/api/server/server.go +++ b/api/server/server.go @@ -1136,15 +1136,19 @@ func postContainerExecStart(eng *engine.Engine, version version.Version, w http. } defer func() { - if tcpc, ok := inStream.(*net.TCPConn); ok { - tcpc.CloseWrite() + if cw, ok := inStream.(interface { + CloseWrite() error + }); ok { + cw.CloseWrite() } else { inStream.Close() } }() defer func() { - if tcpc, ok := outStream.(*net.TCPConn); ok { - tcpc.CloseWrite() + if cw, ok := outStream.(interface { + CloseWrite() error + }); ok { + cw.CloseWrite() } else if closer, ok := outStream.(io.Closer); ok { closer.Close() }