lib/httpserver: do not flush and do not close gzip writer if response compression is disabled

Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/535
This commit is contained in:
Aliaksandr Valialkin 2020-06-05 21:37:10 +03:00
parent c1be462d42
commit 9f55dea162

View file

@ -336,11 +336,13 @@ func (zrw *gzipResponseWriter) writeHeader() {
// Implements http.Flusher
func (zrw *gzipResponseWriter) Flush() {
if err := zrw.bw.Flush(); err != nil && !isTrivialNetworkError(err) {
logger.Warnf("gzipResponseWriter.Flush (buffer): %s", err)
}
if err := zrw.zw.Flush(); err != nil && !isTrivialNetworkError(err) {
logger.Warnf("gzipResponseWriter.Flush (gzip): %s", err)
if !zrw.disableCompression {
if err := zrw.bw.Flush(); err != nil && !isTrivialNetworkError(err) {
logger.Warnf("gzipResponseWriter.Flush (buffer): %s", err)
}
if err := zrw.zw.Flush(); err != nil && !isTrivialNetworkError(err) {
logger.Warnf("gzipResponseWriter.Flush (gzip): %s", err)
}
}
if fw, ok := zrw.ResponseWriter.(http.Flusher); ok {
fw.Flush()
@ -353,7 +355,10 @@ func (zrw *gzipResponseWriter) Close() error {
return nil
}
zrw.Flush()
err := zrw.zw.Close()
var err error
if !zrw.disableCompression {
err = zrw.zw.Close()
}
putGzipWriter(zrw.zw)
zrw.zw = nil
putBufioWriter(zrw.bw)