http exhaust and close response body

This commit is contained in:
Chris Lu 2019-04-14 23:28:24 -07:00
parent 3e8a3a8fec
commit e85048bcdc
3 changed files with 15 additions and 3 deletions

View file

@ -6,6 +6,7 @@ import (
"fmt"
"google.golang.org/grpc"
"io"
"io/ioutil"
"net/http"
"sort"
@ -103,7 +104,10 @@ func readChunkNeedle(fileUrl string, w io.Writer, offset int64) (written int64,
if err != nil {
return written, err
}
defer resp.Body.Close()
defer func() {
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}()
switch resp.StatusCode {
case http.StatusRequestedRangeNotSatisfiable:

View file

@ -3,6 +3,7 @@ package weed_server
import (
"context"
"io"
"io/ioutil"
"mime"
"mime/multipart"
"net/http"
@ -107,7 +108,10 @@ func (fs *FilerServer) handleSingleChunk(w http.ResponseWriter, r *http.Request,
writeJsonError(w, r, http.StatusInternalServerError, do_err)
return
}
defer resp.Body.Close()
defer func() {
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}()
for k, v := range resp.Header {
w.Header()[k] = v
}

View file

@ -4,6 +4,7 @@ import (
"context"
"encoding/json"
"errors"
"io"
"io/ioutil"
"mime"
"net/http"
@ -131,7 +132,10 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request) {
writeJsonError(w, r, http.StatusInternalServerError, do_err)
return
}
defer resp.Body.Close()
defer func() {
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}()
etag := resp.Header.Get("ETag")
resp_body, ra_err := ioutil.ReadAll(resp.Body)
if ra_err != nil {