Skip to content

Commit

Permalink
Let hyper automatically add a host header for HTTP/1
Browse files Browse the repository at this point in the history
  • Loading branch information
Darkspirit committed Dec 16, 2019
1 parent 3f663d7 commit 19226c5
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 40 deletions.
26 changes: 3 additions & 23 deletions components/net/http_loader.rs
Expand Up @@ -27,11 +27,8 @@ use headers::{
};
use headers::{AccessControlAllowOrigin, AccessControlMaxAge};
use headers::{CacheControl, ContentEncoding, ContentLength};
use headers::{
Host, IfModifiedSince, LastModified, Origin as HyperOrigin, Pragma, Referer, UserAgent,
};
use headers::{IfModifiedSince, LastModified, Origin as HyperOrigin, Pragma, Referer, UserAgent};
use http::header::{self, HeaderName, HeaderValue};
use http::uri::Authority;
use http::{HeaderMap, Request as HyperRequest};
use hyper::{Body, Client, Method, Response as HyperResponse, StatusCode};
use hyper_serde::Serde;
Expand Down Expand Up @@ -997,24 +994,7 @@ fn http_network_or_cache_fetch(

// Step 5.16
let current_url = http_request.current_url();
if let Ok(host) = format!(
"{}{}",
current_url.host_str().unwrap(),
current_url
.port()
.map(|v| format!(":{}", v))
.unwrap_or("".into())
)
.parse::<Authority>()
.map(Host::from)
{
http_request.headers.typed_insert(host);
} else {
// This error should only happen in cases where hyper and rust-url disagree
// about how to parse an authority.
// https://github.com/servo/servo/issues/24175
error!("Failed to parse {} as authority", current_url);
}
http_request.headers.remove(header::HOST);

// unlike http_loader, we should not set the accept header
// here, according to the fetch spec
Expand Down Expand Up @@ -1436,7 +1416,7 @@ fn http_network_fetch(
};

if log_enabled!(log::Level::Info) {
info!("response for {}", url);
info!("{:?} response for {}", res.version(), url);
for header in res.headers().iter() {
info!(" - {:?}", header);
}
Expand Down
6 changes: 3 additions & 3 deletions components/net/resource_thread.rs
Expand Up @@ -4,7 +4,7 @@

//! A thread that takes a URL and streams back the binary data.

use crate::connector::{create_http_client, create_tls_config, ALPN_H1};
use crate::connector::{create_http_client, create_tls_config, ALPN_H2_H1};
use crate::cookie;
use crate::cookie_storage::CookieStorage;
use crate::fetch::cors_cache::CorsCache;
Expand Down Expand Up @@ -149,7 +149,7 @@ fn create_http_states(
http_cache: RwLock::new(http_cache),
http_cache_state: Mutex::new(HashMap::new()),
client: create_http_client(
create_tls_config(&certs, ALPN_H1),
create_tls_config(&certs, ALPN_H2_H1),
HANDLE.lock().unwrap().executor(),
),
};
Expand All @@ -162,7 +162,7 @@ fn create_http_states(
http_cache: RwLock::new(HttpCache::new()),
http_cache_state: Mutex::new(HashMap::new()),
client: create_http_client(
create_tls_config(&certs, ALPN_H1),
create_tls_config(&certs, ALPN_H2_H1),
HANDLE.lock().unwrap().executor(),
),
};
Expand Down
10 changes: 1 addition & 9 deletions components/net/tests/fetch.rs
Expand Up @@ -14,11 +14,8 @@ use devtools_traits::HttpRequest as DevtoolsHttpRequest;
use devtools_traits::HttpResponse as DevtoolsHttpResponse;
use headers::{AccessControlAllowCredentials, AccessControlAllowHeaders, AccessControlAllowOrigin};
use headers::{AccessControlAllowMethods, AccessControlMaxAge, HeaderMapExt};
use headers::{
CacheControl, ContentLength, ContentType, Expires, Host, LastModified, Pragma, UserAgent,
};
use headers::{CacheControl, ContentLength, ContentType, Expires, LastModified, Pragma, UserAgent};
use http::header::{self, HeaderMap, HeaderName, HeaderValue};
use http::uri::Authority;
use http::{Method, StatusCode};
use hyper::body::Body;
use hyper::{Request as HyperRequest, Response as HyperResponse};
Expand Down Expand Up @@ -1067,11 +1064,6 @@ fn test_fetch_with_devtools() {
header::ACCEPT_ENCODING,
HeaderValue::from_static("gzip, deflate, br"),
);
headers.typed_insert(Host::from(
format!("{}:{}", url.host_str().unwrap(), url.port().unwrap())
.parse::<Authority>()
.unwrap(),
));

headers.insert(header::ACCEPT, HeaderValue::from_static("*/*"));

Expand Down
5 changes: 0 additions & 5 deletions components/net/tests/http_loader.rs
Expand Up @@ -257,11 +257,6 @@ fn test_request_and_response_data_with_network_messages() {
header::ACCEPT_ENCODING,
HeaderValue::from_static("gzip, deflate, br"),
);
headers.typed_insert(Host::from(
format!("{}:{}", url.host_str().unwrap(), url.port().unwrap())
.parse::<Authority>()
.unwrap(),
));

headers.insert(
header::ACCEPT,
Expand Down

0 comments on commit 19226c5

Please sign in to comment.