From c83393a541353ab34612d80cc6b9bb4e92c59597 Mon Sep 17 00:00:00 2001 From: "Guillaume J. Charmes" Date: Fri, 5 Apr 2013 20:08:31 -0700 Subject: [PATCH] Move the DockerConn flush to its own function --- commands.go | 2 +- rcli/tcp.go | 5 +++++ rcli/types.go | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/commands.go b/commands.go index 25889b46f9..29508ce0a3 100644 --- a/commands.go +++ b/commands.go @@ -894,7 +894,7 @@ 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.Write([]byte{}) + stdout.Flush() } // Create new container diff --git a/rcli/tcp.go b/rcli/tcp.go index 6fbf2abd09..8c990ed82f 100644 --- a/rcli/tcp.go +++ b/rcli/tcp.go @@ -92,6 +92,11 @@ func (c *DockerTCPConn) Write(b []byte) (int, error) { return n + optionsLen, err } +func (c *DockerTCPConn) Flush() error { + _, err := c.conn.Write([]byte{}) + return err +} + func (c *DockerTCPConn) Close() error { return c.conn.Close() } func (c *DockerTCPConn) CloseWrite() error { return c.conn.CloseWrite() } diff --git a/rcli/types.go b/rcli/types.go index 791736a79c..38f4a8c008 100644 --- a/rcli/types.go +++ b/rcli/types.go @@ -29,6 +29,7 @@ type DockerConn interface { CloseRead() error GetOptions() *DockerConnOptions SetOptionRawTerminal() + Flush() error } type DockerLocalConn struct { @@ -56,6 +57,8 @@ func (c *DockerLocalConn) Close() error { return c.writer.Close() } +func (c *DockerLocalConn) Flush() error { return nil } + func (c *DockerLocalConn) CloseWrite() error { return nil } func (c *DockerLocalConn) CloseRead() error { return nil }