aboutsummaryrefslogtreecommitdiff
path: root/compress.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-02-08 16:51:03 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2016-02-08 16:51:03 +0200
commit999348e2d44a69a0a20aa31e6d80ca2126dda056 (patch)
treedfa47c8711bf69c95ea2363354db4e6b54d5d52a /compress.go
parentIssue #47: allow out-of range offsets in byte range headers according to RFC ... (diff)
downloadfasthttp-999348e2d44a69a0a20aa31e6d80ca2126dda056.tar.gz
fasthttp-999348e2d44a69a0a20aa31e6d80ca2126dda056.tar.bz2
fasthttp-999348e2d44a69a0a20aa31e6d80ca2126dda056.zip
Issue #46: use zlib instead of flate for deflate Content-Encoding
Diffstat (limited to 'compress.go')
-rw-r--r--compress.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/compress.go b/compress.go
index bf2cf70..8b3d6d2 100644
--- a/compress.go
+++ b/compress.go
@@ -4,6 +4,7 @@ import (
"bytes"
"compress/flate"
"compress/gzip"
+ "compress/zlib"
"fmt"
"io"
"os"
@@ -40,7 +41,10 @@ var gzipReaderPool sync.Pool
func acquireFlateReader(r io.Reader) (io.ReadCloser, error) {
v := flateReaderPool.Get()
if v == nil {
- zr := flate.NewReader(r)
+ zr, err := zlib.NewReader(r)
+ if err != nil {
+ return nil, err
+ }
return zr, nil
}
zr := v.(io.ReadCloser)
@@ -56,9 +60,9 @@ func releaseFlateReader(zr io.ReadCloser) {
}
func resetFlateReader(zr io.ReadCloser, r io.Reader) error {
- zrr, ok := zr.(flate.Resetter)
+ zrr, ok := zr.(zlib.Resetter)
if !ok {
- panic("BUG: flate.Reader doesn't implement flate.Resetter???")
+ panic("BUG: zlib.Reader doesn't implement zlib.Resetter???")
}
return zrr.Reset(r, nil)
}
@@ -204,9 +208,9 @@ func acquireFlateWriter(w io.Writer, level int) *flateWriter {
v := p.Get()
if v == nil {
- zw, err := flate.NewWriter(w, level)
+ zw, err := zlib.NewWriterLevel(w, level)
if err != nil {
- panic(fmt.Sprintf("BUG: unexpected error in flate.NewWriter(%d): %s", level, err))
+ panic(fmt.Sprintf("BUG: unexpected error in zlib.NewWriterLevel(%d): %s", level, err))
}
return &flateWriter{
Writer: zw,
@@ -224,7 +228,7 @@ func releaseFlateWriter(zw *flateWriter) {
}
type flateWriter struct {
- *flate.Writer
+ *zlib.Writer
p *sync.Pool
}