fix: handle Transfer-Encoding for make bucket

In case of make bucket, there is a chance of Transfer-Encoding is sent
where Content-Length is missing.  This patch fixes the problem by
checking whether Transfer-Encoding: chunked is set along with
Content-Length.
This commit is contained in:
Bala.FA 2016-02-05 16:39:31 +05:30
parent 3a55d05eff
commit d79fcb1800
2 changed files with 11 additions and 1 deletions

View file

@ -230,7 +230,7 @@ func (api CloudStorageAPI) PutBucketHandler(w http.ResponseWriter, req *http.Req
// if body of request is non-nil then check for validity of Content-Length
if req.Body != nil {
/// if Content-Length is unknown/missing, deny the request
if req.ContentLength == -1 {
if req.ContentLength == -1 && !contains(req.TransferEncoding, "chunked") {
writeErrorResponse(w, req, MissingContentLength, req.URL.Path)
return
}

View file

@ -46,3 +46,13 @@ func isMaxObjectSize(size int64) bool {
}
return false
}
func contains(stringList []string, element string) bool {
for _, e := range stringList {
if e == element {
return true
}
}
return false
}