mirror of https://github.com/caddyserver/caddy.git
reverseproxy: Only change Content-Length when full request is buffered (#5830)
fixes: https://github.com/caddyserver/caddy/issues/5829 Signed-off-by: Fred Cox <mcfedr@gmail.com>
This commit is contained in:
parent
76611fa150
commit
d9ff7b1872
|
@ -589,9 +589,13 @@ func (h Handler) prepareRequest(req *http.Request, repl *caddy.Replacer) (*http.
|
||||||
// feature if absolutely required, if read timeouts are
|
// feature if absolutely required, if read timeouts are
|
||||||
// set, and if body size is limited
|
// set, and if body size is limited
|
||||||
if h.RequestBuffers != 0 && req.Body != nil {
|
if h.RequestBuffers != 0 && req.Body != nil {
|
||||||
req.Body, req.ContentLength = h.bufferedBody(req.Body, h.RequestBuffers)
|
var readBytes int64
|
||||||
|
req.Body, readBytes = h.bufferedBody(req.Body, h.RequestBuffers)
|
||||||
|
if h.RequestBuffers == -1 {
|
||||||
|
req.ContentLength = readBytes
|
||||||
req.Header.Set("Content-Length", strconv.FormatInt(req.ContentLength, 10))
|
req.Header.Set("Content-Length", strconv.FormatInt(req.ContentLength, 10))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if req.ContentLength == 0 {
|
if req.ContentLength == 0 {
|
||||||
req.Body = nil // Issue golang/go#16036: nil Body for http.Transport retries
|
req.Body = nil // Issue golang/go#16036: nil Body for http.Transport retries
|
||||||
|
|
Loading…
Reference in New Issue