diff --git a/actix-http/src/client/connection.rs b/actix-http/src/client/connection.rs index 2584c05c5..5429f78de 100644 --- a/actix-http/src/client/connection.rs +++ b/actix-http/src/client/connection.rs @@ -49,9 +49,7 @@ pub trait Connection { >; /// Send request, returns Response and Framed - fn open_tunnel(self, - head: RequestHead, - ) -> Self::TunnelFuture; + fn open_tunnel(self, head: RequestHead) -> Self::TunnelFuture; /// Send request and extra headers, returns Response and Framed fn open_tunnel_extra(self, diff --git a/actix-http/src/client/h1proto.rs b/actix-http/src/client/h1proto.rs index 5bb6ae43b..ac89d8f7d 100644 --- a/actix-http/src/client/h1proto.rs +++ b/actix-http/src/client/h1proto.rs @@ -20,7 +20,7 @@ use crate::body::{BodySize, MessageBody}; pub(crate) fn send_request( io: T, - head_wrapper: RequestHeadWrapper, + mut head_wrapper: RequestHeadWrapper, body: B, created: time::Instant, pool: Option>, @@ -30,7 +30,7 @@ where B: MessageBody, { // set request host header - let head_wrapper = if !head_wrapper.as_ref().headers.contains_key(HOST) && !head_wrapper.extra_headers().iter().any(|h| h.contains_key(HOST)) { + if !head_wrapper.as_ref().headers.contains_key(HOST) && !head_wrapper.extra_headers().iter().any(|h| h.contains_key(HOST)) { if let Some(host) = head_wrapper.as_ref().uri.host() { let mut wrt = BytesMut::with_capacity(host.len() + 5).writer(); @@ -42,30 +42,21 @@ where match wrt.get_mut().take().freeze().try_into() { Ok(value) => { match head_wrapper { - RequestHeadWrapper::Owned(mut head) => { - head.headers.insert(HOST, value); - RequestHeadWrapper::Owned(head) + RequestHeadWrapper::Owned(ref mut head) => { + head.headers.insert(HOST, value) }, - RequestHeadWrapper::Rc(head, extra_headers) => { - let mut headers = extra_headers.unwrap_or(HeaderMap::new()); - headers.insert(HOST, value); - RequestHeadWrapper::Rc(head, Some(headers)) + RequestHeadWrapper::Rc(_, ref mut extra_headers) => { + let headers = extra_headers.get_or_insert(HeaderMap::new()); + headers.insert(HOST, value) }, } } Err(e) => { - log::error!("Can not set HOST header {}", e); - head_wrapper + log::error!("Can not set HOST header {}", e) } } } - else { - head_wrapper - } } - else { - head_wrapper - }; let io = H1Connection { created, diff --git a/awc/src/request.rs b/awc/src/request.rs index 86651200e..9c6d30d03 100644 --- a/awc/src/request.rs +++ b/awc/src/request.rs @@ -519,9 +519,9 @@ impl ClientRequest { // enable br only for https #[cfg(any( - feature = "brotli", - feature = "flate2-zlib", - feature = "flate2-rust" + feature = "brotli", + feature = "flate2-zlib", + feature = "flate2-rust" ))] { if slf.response_decompress {