Procházet zdrojové kódy

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 před 10 roky
rodič
revize
266a1044de
1 změnil soubory, kde provedl 8 přidání a 4 odebrání
  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()
 			}