summaryrefslogtreecommitdiff
path: root/ext/http/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/http/lib.rs')
-rw-r--r--ext/http/lib.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/http/lib.rs b/ext/http/lib.rs
index edc4c1e83..42211105d 100644
--- a/ext/http/lib.rs
+++ b/ext/http/lib.rs
@@ -680,8 +680,11 @@ fn should_compress(headers: &hyper::HeaderMap) -> bool {
// indicates the contents of the body were negotiated based directly
// with the user code and we can't compress the response
let content_range = headers.contains_key(hyper::header::CONTENT_RANGE);
+ // assume body is already compressed if Content-Encoding header present, thus avoid recompressing
+ let is_precompressed = headers.contains_key(hyper::header::CONTENT_ENCODING);
!content_range
+ && !is_precompressed
&& !cache_control_no_transform(headers).unwrap_or_default()
&& headers
.get(hyper::header::CONTENT_TYPE)