0
Fork 0
mirror of https://github.com/caddyserver/caddy.git synced 2025-02-03 23:09:57 -05:00

encode: flush already compressed data from the encoder (#6471)

This commit is contained in:
WeidiDeng 2024-07-28 07:46:56 +08:00 committed by Matthew Holt
parent 2958b0c474
commit 898ef9f212

View file

@ -212,6 +212,14 @@ func (rw *responseWriter) Flush() {
// to rw.Write (see bug in #4314) // to rw.Write (see bug in #4314)
return return
} }
// also flushes the encoder, if any
// see: https://github.com/jjiang-stripe/caddy-slow-gzip
if rw.w != nil {
err := rw.w.Flush()
if err != nil {
return err
}
}
//nolint:bodyclose //nolint:bodyclose
http.NewResponseController(rw.ResponseWriter).Flush() http.NewResponseController(rw.ResponseWriter).Flush()
} }
@ -408,6 +416,7 @@ type encodingPreference struct {
type Encoder interface { type Encoder interface {
io.WriteCloser io.WriteCloser
Reset(io.Writer) Reset(io.Writer)
Flush() error // encoder by default buffers data to maximize compressing rate
} }
// Encoding is a type which can create encoders of its kind // Encoding is a type which can create encoders of its kind