1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

check for errors in call, not readBody

Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
This commit is contained in:
Victor Vieux 2014-01-27 20:51:31 +00:00
parent bbfc531b51
commit abbae8f764

View file

@ -2319,6 +2319,18 @@ func (cli *DockerCli) call(method, path string, data interface{}, passAuthInfo b
}
return nil, -1, err
}
if resp.StatusCode < 200 || resp.StatusCode >= 400 {
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, -1, err
}
if len(body) == 0 {
return nil, resp.StatusCode, fmt.Errorf("Error :%s", http.StatusText(resp.StatusCode))
}
return nil, resp.StatusCode, fmt.Errorf("Error: %s", bytes.TrimSpace(body))
}
wrapper := utils.NewReadCloserWrapper(resp.Body, func() error {
if resp != nil && resp.Body != nil {
resp.Body.Close()
@ -2598,12 +2610,6 @@ func readBody(stream io.ReadCloser, statusCode int, err error) ([]byte, int, err
if err != nil {
return nil, -1, err
}
if statusCode < 200 || statusCode >= 400 {
if len(body) == 0 {
return nil, statusCode, fmt.Errorf("Error: %s", http.StatusText(statusCode))
}
return nil, statusCode, fmt.Errorf("Error: %s", bytes.TrimSpace(body))
}
return body, statusCode, nil
}