mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-22 10:01:11 +08:00
This commit is contained in:
parent
ee358550e4
commit
3b3d678714
|
@ -318,8 +318,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
// so we can track the number of bytes read from it
|
||||
var bodyReader *lengthReader
|
||||
if r.Body != nil {
|
||||
bodyReader = getLengthReader(r.Body)
|
||||
defer putLengthReader(bodyReader)
|
||||
bodyReader = &lengthReader{Source: r.Body}
|
||||
r.Body = bodyReader
|
||||
}
|
||||
|
||||
|
@ -903,24 +902,6 @@ type lengthReader struct {
|
|||
Length int
|
||||
}
|
||||
|
||||
var lengthReaderPool = sync.Pool{
|
||||
New: func() interface{} {
|
||||
return &lengthReader{}
|
||||
},
|
||||
}
|
||||
|
||||
func getLengthReader(source io.ReadCloser) *lengthReader {
|
||||
reader := lengthReaderPool.Get().(*lengthReader)
|
||||
reader.Source = source
|
||||
return reader
|
||||
}
|
||||
|
||||
func putLengthReader(reader *lengthReader) {
|
||||
reader.Source = nil
|
||||
reader.Length = 0
|
||||
lengthReaderPool.Put(reader)
|
||||
}
|
||||
|
||||
func (r *lengthReader) Read(b []byte) (int, error) {
|
||||
n, err := r.Source.Read(b)
|
||||
r.Length += n
|
||||
|
|
Loading…
Reference in New Issue
Block a user