1
0
mirror of https://github.com/actix/actix-extras.git synced 2024-11-24 07:53:00 +01:00

separate ResponseLength::Zero is not needed

This commit is contained in:
Nikolay Kim 2018-10-08 15:33:38 -07:00
parent 805e7a4cd0
commit 3984ad45df
3 changed files with 11 additions and 11 deletions

View File

@ -158,7 +158,8 @@ impl Codec {
buffer.extend_from_slice(b"\r\ntransfer-encoding: chunked\r\n")
}
ResponseLength::Zero => {
buffer.extend_from_slice(b"\r\ncontent-length: 0\r\n")
len_is_set = false;
buffer.extend_from_slice(b"\r\n")
}
ResponseLength::Length(len) => {
helpers::write_content_length(len, buffer)
@ -169,10 +170,6 @@ impl Codec {
buffer.extend_from_slice(b"\r\n");
}
ResponseLength::None => buffer.extend_from_slice(b"\r\n"),
ResponseLength::HeaderOrZero => {
len_is_set = false;
buffer.extend_from_slice(b"\r\n")
}
}
// write headers
@ -185,7 +182,7 @@ impl Codec {
TRANSFER_ENCODING => continue,
CONTENT_LENGTH => match self.te.length {
ResponseLength::None => (),
ResponseLength::HeaderOrZero => {
ResponseLength::Zero => {
len_is_set = true;
}
_ => continue,

View File

@ -17,10 +17,8 @@ use response::Response;
#[derive(Debug)]
pub(crate) enum ResponseLength {
Chunked,
/// Content length is 0
Zero,
/// Check if headers contains length or write 0
HeaderOrZero,
Zero,
Length(usize),
Length64(u64),
/// Do no set content-length
@ -82,7 +80,7 @@ impl ResponseEncoder {
| StatusCode::CONTINUE
| StatusCode::SWITCHING_PROTOCOLS
| StatusCode::PROCESSING => ResponseLength::None,
_ => ResponseLength::HeaderOrZero,
_ => ResponseLength::Zero,
};
TransferEncoding::empty()
}

View File

@ -123,6 +123,12 @@ fn test_content_length() {
.unwrap();
let response = sys.block_on(req.send()).unwrap();
assert_eq!(response.headers().get(&header), None);
let req = client::ClientRequest::head(format!("http://{}/{}", addr, i))
.finish()
.unwrap();
let response = sys.block_on(req.send()).unwrap();
assert_eq!(response.headers().get(&header), None);
}
for i in 4..6 {
@ -254,7 +260,6 @@ fn test_head_empty() {
assert!(response.status().is_success());
{
println!("RESP: {:?}", response);
let len = response
.headers()
.get(http::header::CONTENT_LENGTH)