1
0
Fork 0
mirror of https://github.com/chrislusf/seaweedfs synced 2024-09-19 07:21:00 +02:00

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

View file

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

View file

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