Modify Transfer-Encoding behavior to check for last encoding only

This commit is contained in:
Deluvi
2020-06-26 16:29:48 +02:00
committed by Martin Algesten
parent 7de192d3f1
commit fec79dcef3

View File

@@ -38,7 +38,14 @@ impl Unit {
let (is_transfer_encoding_set, mut is_chunked) = req
.header("transfer-encoding")
// if the user has set an encoding header, obey that.
.map(|enc| (!enc.is_empty(), enc == "chunked"))
.map(|enc| {
let is_transfer_encoding_set = !enc.is_empty();
let last_encoding = enc.split(',').last();
let is_chunked = last_encoding
.map(|last_enc| last_enc.trim() == "chunked")
.unwrap_or(false);
(is_transfer_encoding_set, is_chunked)
})
// otherwise, no chunking.
.unwrap_or((false, false));