diff options
Diffstat (limited to 'vendor/github.com/gin-contrib/gzip/gzip.go')
-rw-r--r-- | vendor/github.com/gin-contrib/gzip/gzip.go | 39 |
1 files changed, 39 insertions, 0 deletions
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) +} |