From 00965e0e9e017ba4c6fe37d61612efbbfc25d10b Mon Sep 17 00:00:00 2001 From: "Guillaume J. Charmes" Date: Tue, 9 Apr 2013 09:59:30 -0700 Subject: [PATCH] Flush whether or not there we set the rawmode to avoid the client to lock Upstream-commit: cb54e9c659c681fde5311aacefe0e5ea8c564e17 Component: engine --- components/engine/commands.go | 9 +++++---- components/engine/rcli/tcp.go | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/components/engine/commands.go b/components/engine/commands.go index 29508ce0a3..9a520da8a0 100644 --- a/components/engine/commands.go +++ b/components/engine/commands.go @@ -803,9 +803,9 @@ func (srv *Server) CmdAttach(stdin io.ReadCloser, stdout rcli.DockerConn, args . if container.Config.Tty { stdout.SetOptionRawTerminal() - // Flush the options to make sure the client sets the raw mode - stdout.Write([]byte{}) } + // Flush the options to make sure the client sets the raw mode + stdout.Flush() return <-container.Attach(stdin, nil, stdout, stdout) } @@ -893,9 +893,10 @@ func (srv *Server) CmdRun(stdin io.ReadCloser, stdout rcli.DockerConn, args ...s if config.Tty { stdout.SetOptionRawTerminal() - // Flush the options to make sure the client sets the raw mode - stdout.Flush() } + // Flush the options to make sure the client sets the raw mode + // or tell the client there is no options + stdout.Flush() // Create new container container, err := srv.runtime.Create(config) diff --git a/components/engine/rcli/tcp.go b/components/engine/rcli/tcp.go index 8c990ed82f..e9dba7f319 100644 --- a/components/engine/rcli/tcp.go +++ b/components/engine/rcli/tcp.go @@ -93,7 +93,7 @@ func (c *DockerTCPConn) Write(b []byte) (int, error) { } func (c *DockerTCPConn) Flush() error { - _, err := c.conn.Write([]byte{}) + _, err := c.Write([]byte{}) return err }