commands/http: Fixed client panic when sending a Request with nil 'Files'

This commit is contained in:
Matt Bell 2014-12-01 19:10:18 -08:00 committed by Brian Tiger Chow
parent c91805d7bd
commit 4c7a694409

View File

@ -48,14 +48,21 @@ func (c *client) Send(req cmds.Request) (cmds.Response, error) {
}
var fileReader *MultiFileReader
var reader io.Reader
if req.Files() != nil {
fileReader = NewMultiFileReader(req.Files(), true)
reader = fileReader
} else {
// if we have no file data, use an empty Reader
// (http.NewRequest panics when a nil Reader is used)
reader = strings.NewReader("")
}
path := strings.Join(req.Path(), "/")
url := fmt.Sprintf(ApiUrlFormat, c.serverAddress, ApiPath, path, query)
httpReq, err := http.NewRequest("POST", url, fileReader)
httpReq, err := http.NewRequest("POST", url, reader)
if err != nil {
return nil, err
}