diff --git a/commands.go b/commands.go index 29508ce0a3..2c098d5196 100644 --- a/commands.go +++ b/commands.go @@ -419,7 +419,8 @@ func (srv *Server) CmdKill(stdin io.ReadCloser, stdout io.Writer, args ...string return nil } -func (srv *Server) CmdImport(stdin io.ReadCloser, stdout io.Writer, args ...string) error { +func (srv *Server) CmdImport(stdin io.ReadCloser, stdout rcli.DockerConn, args ...string) error { + stdout.Flush() cmd := rcli.Subcmd(stdout, "import", "[OPTIONS] URL|- [REPOSITORY [TAG]]", "Create a new filesystem image from the contents of a tarball") var archive io.Reader var resp *http.Response @@ -803,9 +804,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 +894,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/rcli/tcp.go b/rcli/tcp.go index 8c990ed82f..e9dba7f319 100644 --- a/rcli/tcp.go +++ b/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 }