Commit 532ab661 authored by Carter's avatar Carter

Fully read and close the request body

parent d56ac28b
...@@ -163,17 +163,21 @@ func canLogRequest(r *http.Request) (canLog bool) { ...@@ -163,17 +163,21 @@ func canLogRequest(r *http.Request) (canLog bool) {
// readRequestBody reads the request body and sets a // readRequestBody reads the request body and sets a
// new io.ReadCloser that has not yet been read. // new io.ReadCloser that has not yet been read.
func readRequestBody(r *http.Request, n int64) ([]byte, error) { func readRequestBody(r *http.Request, n int64) ([]byte, error) {
defer r.Body.Close()
body, err := ioutil.ReadAll(io.LimitReader(r.Body, n)) body, err := ioutil.ReadAll(io.LimitReader(r.Body, n))
if err != nil { if err != nil {
return nil, err return nil, err
} }
mr := io.MultiReader( // Read the remaining bytes
bytes.NewBuffer(body), remaining, err := ioutil.ReadAll(r.Body)
r.Body, if err != nil {
) return nil, err
}
r.Body = ioutil.NopCloser(mr) buf := bytes.NewBuffer(append(body, remaining...))
r.Body = ioutil.NopCloser(buf)
return body, nil return body, nil
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment