Browse Source

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 năm trước cách đây
mục cha
commit
266a1044de
1 tập tin đã thay đổi với 8 bổ sung4 xóa
  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()
 			}