Use ensureReaderClosed consistently to close a response body reader.

Signed-off-by: David Calavera <david.calavera@gmail.com>
This commit is contained in:
David Calavera 2015-12-04 14:57:22 -05:00
parent 7df71ca31d
commit 8c9c9e137c
10 changed files with 12 additions and 9 deletions

View File

@ -51,8 +51,7 @@ func (cli *Client) ContainerCommit(options types.ContainerCommitOptions) (types.
if err != nil { if err != nil {
return response, err return response, err
} }
defer ensureReaderClosed(resp)
defer resp.body.Close()
if err := json.NewDecoder(resp.body).Decode(&response); err != nil { if err := json.NewDecoder(resp.body).Decode(&response); err != nil {
return response, err return response, err

View File

@ -29,11 +29,13 @@ func (cli *Client) ContainerCreate(config *runconfig.ContainerConfigWrapper, con
} }
if serverResp.statusCode == 404 && strings.Contains(err.Error(), config.Image) { if serverResp.statusCode == 404 && strings.Contains(err.Error(), config.Image) {
return response, imageNotFoundError{config.Image}
} }
if err != nil { if err != nil {
return response, err return response, err
} }
defer ensureReaderClosed(serverResp)
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil { if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
return response, err return response, err

View File

@ -12,7 +12,7 @@ func (cli *Client) ContainerInspect(containerID string) (types.ContainerJSON, er
if err != nil { if err != nil {
return types.ContainerJSON{}, err return types.ContainerJSON{}, err
} }
defer serverResp.body.Close() defer ensureReaderClosed(serverResp)
var response types.ContainerJSON var response types.ContainerJSON
json.NewDecoder(serverResp.body).Decode(&response) json.NewDecoder(serverResp.body).Decode(&response)

View File

@ -51,6 +51,7 @@ func (cli *Client) CopyToContainer(options CopyToContainerOptions) error {
if err != nil { if err != nil {
return err return err
} }
defer ensureReaderClosed(response)
if response.statusCode != http.StatusOK { if response.statusCode != http.StatusOK {
return fmt.Errorf("unexpected status code from daemon: %d", response.statusCode) return fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)

View File

@ -15,7 +15,7 @@ func (cli *Client) ContainerDiff(containerID string) ([]types.ContainerChange, e
if err != nil { if err != nil {
return changes, err return changes, err
} }
defer serverResp.body.Close() defer ensureReaderClosed(serverResp)
if err := json.NewDecoder(serverResp.body).Decode(&changes); err != nil { if err := json.NewDecoder(serverResp.body).Decode(&changes); err != nil {
return changes, err return changes, err

View File

@ -14,7 +14,7 @@ func (cli *Client) ImageHistory(imageID string) ([]types.ImageHistory, error) {
if err != nil { if err != nil {
return history, err return history, err
} }
defer serverResp.body.Close() defer ensureReaderClosed(serverResp)
if err := json.NewDecoder(serverResp.body).Decode(&history); err != nil { if err := json.NewDecoder(serverResp.body).Decode(&history); err != nil {
return history, err return history, err

View File

@ -41,7 +41,7 @@ func (cli *Client) ImageList(options ImageListOptions) ([]types.Image, error) {
if err != nil { if err != nil {
return images, err return images, err
} }
defer serverResp.body.Close() defer ensureReaderClosed(serverResp)
err = json.NewDecoder(serverResp.body).Decode(&images) err = json.NewDecoder(serverResp.body).Decode(&images)
return images, err return images, err

View File

@ -15,7 +15,7 @@ func (cli *Client) Info() (types.Info, error) {
if err != nil { if err != nil {
return info, err return info, err
} }
defer serverResp.body.Close() defer ensureReaderClosed(serverResp)
if err := json.NewDecoder(serverResp.body).Decode(&info); err != nil { if err := json.NewDecoder(serverResp.body).Decode(&info); err != nil {
return info, fmt.Errorf("Error reading remote info: %v", err) return info, fmt.Errorf("Error reading remote info: %v", err)

View File

@ -7,6 +7,7 @@ func (cli *Client) ContainerKill(containerID, signal string) error {
var query url.Values var query url.Values
query.Set("signal", signal) query.Set("signal", signal)
_, err := cli.POST("/containers/"+containerID+"/kill", query, nil, nil) resp, err := cli.POST("/containers/"+containerID+"/kill", query, nil, nil)
ensureReaderClosed(resp)
return err return err
} }

View File

@ -20,7 +20,7 @@ func (cli *Client) RegistryLogin(auth cliconfig.AuthConfig) (types.AuthResponse,
if err != nil { if err != nil {
return types.AuthResponse{}, err return types.AuthResponse{}, err
} }
defer resp.body.Close() defer ensureReaderClosed(resp)
var response types.AuthResponse var response types.AuthResponse
err = json.NewDecoder(resp.body).Decode(&response) err = json.NewDecoder(resp.body).Decode(&response)