From a089a98ea9874f339e635700dfdb00c91f10b4d5 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Sat, 19 Feb 2022 12:12:41 +0100 Subject: [feature] Gin enable gzip encoding (#405) * add gin gzip dependency * add gzip middleware to router * go mod tidy --- vendor/github.com/gin-contrib/gzip/gzip.go | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 vendor/github.com/gin-contrib/gzip/gzip.go (limited to 'vendor/github.com/gin-contrib/gzip/gzip.go') diff --git a/vendor/github.com/gin-contrib/gzip/gzip.go b/vendor/github.com/gin-contrib/gzip/gzip.go new file mode 100644 index 000000000..529c62df6 --- /dev/null +++ b/vendor/github.com/gin-contrib/gzip/gzip.go @@ -0,0 +1,39 @@ +package gzip + +import ( + "compress/gzip" + + "github.com/gin-gonic/gin" +) + +const ( + BestCompression = gzip.BestCompression + BestSpeed = gzip.BestSpeed + DefaultCompression = gzip.DefaultCompression + NoCompression = gzip.NoCompression +) + +func Gzip(level int, options ...Option) gin.HandlerFunc { + return newGzipHandler(level, options...).Handle +} + +type gzipWriter struct { + gin.ResponseWriter + writer *gzip.Writer +} + +func (g *gzipWriter) WriteString(s string) (int, error) { + g.Header().Del("Content-Length") + return g.writer.Write([]byte(s)) +} + +func (g *gzipWriter) Write(data []byte) (int, error) { + g.Header().Del("Content-Length") + return g.writer.Write(data) +} + +// Fix: https://github.com/mholt/caddy/issues/38 +func (g *gzipWriter) WriteHeader(code int) { + g.Header().Del("Content-Length") + g.ResponseWriter.WriteHeader(code) +} -- cgit v1.2.3