1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-10-21 09:23:54 +00:00

better connect handling

This commit is contained in:
Nikolay Kim 2017-12-24 16:15:40 -08:00
parent ddd9c24bb2
commit f1e82ebc1e

View file

@ -581,7 +581,9 @@ impl Reader {
msg
};
let decoder = if let Some(len) = msg.get_ref().headers.get(header::CONTENT_LENGTH) {
let decoder = if msg.get_ref().method == Method::CONNECT {
Some(Decoder::eof())
} else if let Some(len) = msg.get_ref().headers.get(header::CONTENT_LENGTH) {
// Content-Length
if let Ok(s) = len.to_str() {
if let Ok(len) = s.parse::<u64>() {
@ -597,9 +599,7 @@ impl Reader {
} else if chunked(&msg.get_mut().headers)? {
// Chunked encoding
Some(Decoder::chunked())
} else if msg.get_ref().headers.contains_key(header::UPGRADE) ||
msg.get_ref().method == Method::CONNECT
{
} else if msg.get_ref().headers.contains_key(header::UPGRADE) {
Some(Decoder::eof())
} else {
None
@ -1215,6 +1215,7 @@ mod tests {
fn test_conn_upgrade() {
let mut buf = Buffer::new(
"GET /test HTTP/1.1\r\n\
upgrade: websockets\r\n\
connection: upgrade\r\n\r\n");
let req = parse_ready!(&mut buf);
@ -1226,6 +1227,7 @@ mod tests {
fn test_conn_upgrade_connect_method() {
let mut buf = Buffer::new(
"CONNECT /test HTTP/1.1\r\n\
upgrade: websockets\r\n\
content-length: 0\r\n\r\n");
let req = parse_ready!(&mut buf);