Skip to content

Commit

Permalink
Check the content type is json when calling exec start.
Browse files Browse the repository at this point in the history
Signed-off-by: David Calavera <david.calavera@gmail.com>
  • Loading branch information
calavera committed Oct 19, 2015
1 parent 841205e commit 45dc57f
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 2 deletions.
2 changes: 1 addition & 1 deletion api/client/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ func (cli *DockerCli) CmdExec(args ...string) error {
}
}
errCh = promise.Go(func() error {
return cli.hijack("POST", "/exec/"+execID+"/start", execConfig.Tty, in, out, stderr, hijacked, execConfig)
return cli.hijackWithContentType("POST", "/exec/"+execID+"/start", "application/json", execConfig.Tty, in, out, stderr, hijacked, execConfig)
})

// Acknowledge the hijack before starting
Expand Down
6 changes: 5 additions & 1 deletion api/client/hijack.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@ func (cli *DockerCli) dial() (net.Conn, error) {
}

func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.ReadCloser, stdout, stderr io.Writer, started chan io.Closer, data interface{}) error {
return cli.hijackWithContentType(method, path, "text/plain", setRawTerminal, in, stdout, stderr, started, data)
}

func (cli *DockerCli) hijackWithContentType(method, path, contentType string, setRawTerminal bool, in io.ReadCloser, stdout, stderr io.Writer, started chan io.Closer, data interface{}) error {
defer func() {
if started != nil {
close(started)
Expand All @@ -149,7 +153,7 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
}

req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")")
req.Header.Set("Content-Type", "text/plain")
req.Header.Set("Content-Type", contentType)
req.Header.Set("Connection", "Upgrade")
req.Header.Set("Upgrade", "tcp")
req.Host = cli.addr
Expand Down
3 changes: 3 additions & 0 deletions api/server/router/local/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ func (s *router) postContainerExecStart(ctx context.Context, w http.ResponseWrit
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
var (
execName = vars["name"]
stdin, inStream io.ReadCloser
Expand Down

0 comments on commit 45dc57f

Please sign in to comment.