diff options
Diffstat (limited to 'vendor/github.com/gin-contrib')
-rw-r--r-- | vendor/github.com/gin-contrib/gzip/README.md | 1 | ||||
-rw-r--r-- | vendor/github.com/gin-contrib/gzip/handler.go | 10 | ||||
-rw-r--r-- | vendor/github.com/gin-contrib/gzip/options.go | 4 |
3 files changed, 9 insertions, 6 deletions
diff --git a/vendor/github.com/gin-contrib/gzip/README.md b/vendor/github.com/gin-contrib/gzip/README.md index 2f94d053d..86469858f 100644 --- a/vendor/github.com/gin-contrib/gzip/README.md +++ b/vendor/github.com/gin-contrib/gzip/README.md @@ -4,7 +4,6 @@ [](https://codecov.io/gh/gin-contrib/gzip) [](https://goreportcard.com/report/github.com/gin-contrib/gzip) [](https://godoc.org/github.com/gin-contrib/gzip) -[](https://gitter.im/gin-gonic/gin) Gin middleware to enable `GZIP` support. diff --git a/vendor/github.com/gin-contrib/gzip/handler.go b/vendor/github.com/gin-contrib/gzip/handler.go index 7de33eb64..ee9eb9f66 100644 --- a/vendor/github.com/gin-contrib/gzip/handler.go +++ b/vendor/github.com/gin-contrib/gzip/handler.go @@ -3,7 +3,7 @@ package gzip import ( "compress/gzip" "fmt" - "io/ioutil" + "io" "net/http" "path/filepath" "strings" @@ -22,7 +22,7 @@ func newGzipHandler(level int, options ...Option) *gzipHandler { Options: DefaultOptions, gzPool: sync.Pool{ New: func() interface{} { - gz, err := gzip.NewWriterLevel(ioutil.Discard, level) + gz, err := gzip.NewWriterLevel(io.Discard, level) if err != nil { panic(err) } @@ -47,13 +47,17 @@ func (g *gzipHandler) Handle(c *gin.Context) { gz := g.gzPool.Get().(*gzip.Writer) defer g.gzPool.Put(gz) - defer gz.Reset(ioutil.Discard) + defer gz.Reset(io.Discard) gz.Reset(c.Writer) c.Header("Content-Encoding", "gzip") c.Header("Vary", "Accept-Encoding") c.Writer = &gzipWriter{c.Writer, gz} defer func() { + if c.Writer.Size() < 0 { + // do not write gzip footer when nothing is written to the response body + gz.Reset(io.Discard) + } gz.Close() c.Header("Content-Length", fmt.Sprint(c.Writer.Size())) }() diff --git a/vendor/github.com/gin-contrib/gzip/options.go b/vendor/github.com/gin-contrib/gzip/options.go index 6b3bc3f4a..c0953e08a 100644 --- a/vendor/github.com/gin-contrib/gzip/options.go +++ b/vendor/github.com/gin-contrib/gzip/options.go @@ -52,12 +52,12 @@ func WithDecompressFn(decompressFn func(c *gin.Context)) Option { } // Using map for better lookup performance -type ExcludedExtensions map[string]bool +type ExcludedExtensions map[string]struct{} func NewExcludedExtensions(extensions []string) ExcludedExtensions { res := make(ExcludedExtensions) for _, e := range extensions { - res[e] = true + res[e] = struct{}{} } return res } |