瀏覽代碼

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 <arnaud.porterie@docker.com>
Arnaud Porterie 10 年之前
父節點
當前提交
266a1044de
共有 1 個文件被更改,包括 8 次插入4 次删除
  1. 8 4
      api/server/server.go

+ 8 - 4
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()
 			}