Small fixes

This commit is contained in:
Dmitry Pypin 2019-09-05 11:51:41 -07:00
parent 7f20d58525
commit 64b65f0c9d
3 changed files with 12 additions and 23 deletions

View File

@ -49,9 +49,7 @@ pub trait Connection {
>; >;
/// Send request, returns Response and Framed /// Send request, returns Response and Framed
fn open_tunnel(self, fn open_tunnel(self, head: RequestHead) -> Self::TunnelFuture;
head: RequestHead,
) -> Self::TunnelFuture;
/// Send request and extra headers, returns Response and Framed /// Send request and extra headers, returns Response and Framed
fn open_tunnel_extra(self, fn open_tunnel_extra(self,

View File

@ -20,7 +20,7 @@ use crate::body::{BodySize, MessageBody};
pub(crate) fn send_request<T, B>( pub(crate) fn send_request<T, B>(
io: T, io: T,
head_wrapper: RequestHeadWrapper, mut head_wrapper: RequestHeadWrapper,
body: B, body: B,
created: time::Instant, created: time::Instant,
pool: Option<Acquired<T>>, pool: Option<Acquired<T>>,
@ -30,7 +30,7 @@ where
B: MessageBody, B: MessageBody,
{ {
// set request host header // 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() { if let Some(host) = head_wrapper.as_ref().uri.host() {
let mut wrt = BytesMut::with_capacity(host.len() + 5).writer(); let mut wrt = BytesMut::with_capacity(host.len() + 5).writer();
@ -42,30 +42,21 @@ where
match wrt.get_mut().take().freeze().try_into() { match wrt.get_mut().take().freeze().try_into() {
Ok(value) => { Ok(value) => {
match head_wrapper { match head_wrapper {
RequestHeadWrapper::Owned(mut head) => { RequestHeadWrapper::Owned(ref mut head) => {
head.headers.insert(HOST, value); head.headers.insert(HOST, value)
RequestHeadWrapper::Owned(head)
}, },
RequestHeadWrapper::Rc(head, extra_headers) => { RequestHeadWrapper::Rc(_, ref mut extra_headers) => {
let mut headers = extra_headers.unwrap_or(HeaderMap::new()); let headers = extra_headers.get_or_insert(HeaderMap::new());
headers.insert(HOST, value); headers.insert(HOST, value)
RequestHeadWrapper::Rc(head, Some(headers))
}, },
} }
} }
Err(e) => { Err(e) => {
log::error!("Can not set HOST header {}", e); log::error!("Can not set HOST header {}", e)
head_wrapper
} }
} }
} }
else {
head_wrapper
}
} }
else {
head_wrapper
};
let io = H1Connection { let io = H1Connection {
created, created,

View File

@ -519,9 +519,9 @@ impl ClientRequest {
// enable br only for https // enable br only for https
#[cfg(any( #[cfg(any(
feature = "brotli", feature = "brotli",
feature = "flate2-zlib", feature = "flate2-zlib",
feature = "flate2-rust" feature = "flate2-rust"
))] ))]
{ {
if slf.response_decompress { if slf.response_decompress {