aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
authorGravatar Co1a <aaron9shire@gmail.com> 2024-02-21 14:21:52 +0800
committerGravatar GitHub <noreply@github.com> 2024-02-21 07:21:52 +0100
commit5f81476d7cf339624b5fec57a06ee96d3e27d9c2 (patch)
tree62b06111db30c5895dc775f53bf5577f1092c06a /server.go
parentLimit memory for fuzz testing (diff)
downloadfasthttp-5f81476d7cf339624b5fec57a06ee96d3e27d9c2.tar.gz
fasthttp-5f81476d7cf339624b5fec57a06ee96d3e27d9c2.tar.bz2
fasthttp-5f81476d7cf339624b5fec57a06ee96d3e27d9c2.zip
feat:support zstd compress and uncompressed (#1701)
* feat:support zstd compress and uncompressed * fix:real & stackless write using different pool to avoid get stackless.writer * fix:zstd normalize compress level * Change empty string checks to be more idiomatic (#1684) * chore:lint fix and rebase with master * chore:remove 1.18 test & upgrade compress version * fix:error default compress level * Fix lint --------- Co-authored-by: Erik Dubbelboer <erik@dubbelboer.com>
Diffstat (limited to 'server.go')
-rw-r--r--server.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/server.go b/server.go
index e3593cd..426351b 100644
--- a/server.go
+++ b/server.go
@@ -523,10 +523,13 @@ func CompressHandler(h RequestHandler) RequestHandler {
func CompressHandlerLevel(h RequestHandler, level int) RequestHandler {
return func(ctx *RequestCtx) {
h(ctx)
- if ctx.Request.Header.HasAcceptEncodingBytes(strGzip) {
+ switch {
+ case ctx.Request.Header.HasAcceptEncodingBytes(strGzip):
ctx.Response.gzipBody(level) //nolint:errcheck
- } else if ctx.Request.Header.HasAcceptEncodingBytes(strDeflate) {
+ case ctx.Request.Header.HasAcceptEncodingBytes(strDeflate):
ctx.Response.deflateBody(level) //nolint:errcheck
+ case ctx.Request.Header.HasAcceptEncodingBytes(strZstd):
+ ctx.Response.zstdBody(level) //nolint:errcheck
}
}
}
@@ -559,6 +562,8 @@ func CompressHandlerBrotliLevel(h RequestHandler, brotliLevel, otherLevel int) R
ctx.Response.gzipBody(otherLevel) //nolint:errcheck
case ctx.Request.Header.HasAcceptEncodingBytes(strDeflate):
ctx.Response.deflateBody(otherLevel) //nolint:errcheck
+ case ctx.Request.Header.HasAcceptEncodingBytes(strZstd):
+ ctx.Response.zstdBody(otherLevel) //nolint:errcheck
}
}
}