Flush whether or not there we set the rawmode to avoid the client to lock

This commit is contained in:
Guillaume J. Charmes 2013-04-09 09:59:30 -07:00
Родитель 0767916ade
Коммит cb54e9c659
2 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -803,9 +803,9 @@ func (srv *Server) CmdAttach(stdin io.ReadCloser, stdout rcli.DockerConn, args .
if container.Config.Tty { if container.Config.Tty {
stdout.SetOptionRawTerminal() 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) 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 { if config.Tty {
stdout.SetOptionRawTerminal() 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 // Create new container
container, err := srv.runtime.Create(config) container, err := srv.runtime.Create(config)

Просмотреть файл

@ -93,7 +93,7 @@ func (c *DockerTCPConn) Write(b []byte) (int, error) {
} }
func (c *DockerTCPConn) Flush() error { func (c *DockerTCPConn) Flush() error {
_, err := c.conn.Write([]byte{}) _, err := c.Write([]byte{})
return err return err
} }