summaryrefslogtreecommitdiff
path: root/vendor/github.com/gin-contrib/gzip/gzip.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gin-contrib/gzip/gzip.go')
-rw-r--r--vendor/github.com/gin-contrib/gzip/gzip.go39
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)
+}