Skip to content

Commit

Permalink
Move hosts module into net crate. Remove obsolete functions.
Browse files Browse the repository at this point in the history
  • Loading branch information
jdm committed Apr 6, 2017
1 parent e772086 commit 6f590a8
Show file tree
Hide file tree
Showing 11 changed files with 13 additions and 45 deletions.
3 changes: 2 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions components/net/Cargo.toml
Expand Up @@ -20,13 +20,15 @@ hyper_serde = "0.6"
hyper-openssl = "0.2.2"
immeta = "0.3.1"
ipc-channel = "0.7"
lazy_static = "0.2"
log = "0.3.5"
matches = "0.1"
mime = "0.2.1"
mime_guess = "1.8.0"
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
openssl = "0.9"
parse-hosts = "0.3.0"
profile_traits = {path = "../profile_traits"}
serde = "0.9"
serde_derive = "0.9"
Expand Down
2 changes: 1 addition & 1 deletion components/net/connector.rs
Expand Up @@ -2,11 +2,11 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use hosts::replace_host;
use hyper::client::Pool;
use hyper::error::{Result as HyperResult, Error as HyperError};
use hyper::net::{NetworkConnector, HttpsStream, HttpStream, SslClient};
use hyper_openssl::OpensslClient;
use net_traits::hosts::replace_host;
use openssl::ssl::{SSL_OP_NO_COMPRESSION, SSL_OP_NO_SSLV2, SSL_OP_NO_SSLV3};
use openssl::ssl::{SslConnectorBuilder, SslMethod};
use std::io;
Expand Down
17 changes: 0 additions & 17 deletions components/net_traits/hosts.rs → components/net/hosts.rs
Expand Up @@ -3,7 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use parse_hosts::HostsFile;
use servo_url::ServoUrl;
use std::borrow::Cow;
use std::collections::HashMap;
use std::env;
Expand Down Expand Up @@ -62,19 +61,3 @@ pub fn replace_host(host: &str) -> Cow<str> {
.and_then(|table| table.get(host))
.map_or(host.into(), |replaced_host| replaced_host.to_string().into())
}

pub fn replace_host_in_url(url: ServoUrl) -> ServoUrl {
if let Some(table) = HOST_TABLE.lock().unwrap().as_ref() {
host_replacement(table, url)
} else {
url
}
}

pub fn host_replacement(host_table: &HashMap<String, IpAddr>, mut url: ServoUrl) -> ServoUrl {
let replacement = url.domain().and_then(|domain| host_table.get(domain));
if let Some(ip) = replacement {
url.set_ip_host(*ip).unwrap();
}
url
}
5 changes: 5 additions & 0 deletions components/net/lib.rs
Expand Up @@ -16,6 +16,8 @@ extern crate hyper_openssl;
extern crate hyper_serde;
extern crate immeta;
extern crate ipc_channel;
#[macro_use]
extern crate lazy_static;
#[macro_use] extern crate log;
#[macro_use] #[no_link] extern crate matches;
#[macro_use]
Expand All @@ -24,6 +26,7 @@ extern crate mime_guess;
extern crate msg;
extern crate net_traits;
extern crate openssl;
extern crate parse_hosts;
extern crate profile_traits;
extern crate serde;
#[macro_use]
Expand All @@ -47,6 +50,7 @@ pub mod cookie;
pub mod cookie_storage;
mod data_loader;
pub mod filemanager_thread;
mod hosts;
pub mod hsts;
mod http_loader;
pub mod image_cache;
Expand All @@ -65,4 +69,5 @@ pub mod fetch {
pub mod test {
pub use chrome_loader::resolve_chrome_url;
pub use http_loader::HttpState;
pub use hosts::{replace_host_table, parse_hostsfile};
}
2 changes: 1 addition & 1 deletion components/net/websocket_loader.rs
Expand Up @@ -4,6 +4,7 @@

use cookie::Cookie;
use fetch::methods::{should_be_blocked_due_to_bad_port, should_be_blocked_due_to_nosniff};
use hosts::replace_host;
use http_loader::{HttpState, is_redirect_status, set_default_accept};
use http_loader::{set_default_accept_language, set_request_cookies};
use hyper::buffer::BufReader;
Expand All @@ -16,7 +17,6 @@ use hyper::status::StatusCode;
use hyper::version::HttpVersion;
use net_traits::{CookieSource, MessageData, NetworkError, WebSocketCommunicate, WebSocketConnectData};
use net_traits::{WebSocketDomAction, WebSocketNetworkEvent};
use net_traits::hosts::replace_host;
use net_traits::request::{Destination, Type};
use servo_url::ServoUrl;
use std::ascii::AsciiExt;
Expand Down
1 change: 0 additions & 1 deletion components/net_traits/Cargo.toml
Expand Up @@ -22,7 +22,6 @@ lazy_static = "0.2"
log = "0.3.5"
msg = {path = "../msg"}
num-traits = "0.1.32"
parse-hosts = "0.3.0"
serde = "0.9"
serde_derive = "0.9"
servo_config = {path = "../config", features = ["servo"]}
Expand Down
2 changes: 0 additions & 2 deletions components/net_traits/lib.rs
Expand Up @@ -22,7 +22,6 @@ extern crate lazy_static;
extern crate log;
extern crate msg;
extern crate num_traits;
extern crate parse_hosts;
extern crate serde;
#[macro_use]
extern crate serde_derive;
Expand Down Expand Up @@ -51,7 +50,6 @@ use storage_thread::StorageThreadMsg;

pub mod blob_url_store;
pub mod filemanager_thread;
pub mod hosts;
pub mod image_cache;
pub mod net_error_list;
pub mod pub_domains;
Expand Down
1 change: 0 additions & 1 deletion tests/unit/net/hsts.rs
Expand Up @@ -6,7 +6,6 @@ use net::hsts::{HstsEntry, HstsList};
use net_traits::IncludeSubdomains;
use std::collections::HashMap;
use time;
use url::Url;

#[test]
fn test_hsts_entry_is_not_expired_when_it_has_no_timestamp() {
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/net/http_loader.rs
Expand Up @@ -25,8 +25,8 @@ use msg::constellation_msg::TEST_PIPELINE_ID;
use net::cookie::Cookie;
use net::cookie_storage::CookieStorage;
use net::resource_thread::AuthCacheEntry;
use net::test::replace_host_table;
use net_traits::{CookieSource, NetworkError};
use net_traits::hosts::replace_host_table;
use net_traits::request::{Request, RequestInit, RequestMode, CredentialsMode, Destination};
use net_traits::response::ResponseBody;
use new_fetch_context;
Expand Down
21 changes: 1 addition & 20 deletions tests/unit/net/resource_thread.rs
Expand Up @@ -4,12 +4,9 @@

use ipc_channel::ipc;
use net::resource_thread::new_core_resource_thread;
use net::test::parse_hostsfile;
use net_traits::CoreResourceMsg;
use net_traits::hosts::{host_replacement, parse_hostsfile};
use profile_traits::time::ProfilerChan;
use servo_url::ServoUrl;
use std::borrow::ToOwned;
use std::collections::HashMap;
use std::net::IpAddr;

fn ip(s: &str) -> IpAddr {
Expand Down Expand Up @@ -143,19 +140,3 @@ fn test_parse_hostsfile_with_end_of_line_whitespace()
assert_eq!(ip("2001:db8:0:0:0:ff00:42:8329"), *hosts_table.get("moz.foo.com").unwrap());
assert_eq!(ip("127.0.0.2"), *hosts_table.get("servo.test.server").unwrap());
}

#[test]
fn test_replace_hosts() {
let mut host_table = HashMap::new();
host_table.insert("foo.bar.com".to_owned(), ip("127.0.0.1"));
host_table.insert("servo.test.server".to_owned(), ip("127.0.0.2"));

let url = ServoUrl::parse("http://foo.bar.com:8000/foo").unwrap();
assert_eq!(host_replacement(&host_table, url).host_str().unwrap(), "127.0.0.1");

let url = ServoUrl::parse("http://servo.test.server").unwrap();
assert_eq!(host_replacement(&host_table, url).host_str().unwrap(), "127.0.0.2");

let url = ServoUrl::parse("http://a.foo.bar.com").unwrap();
assert_eq!(host_replacement(&host_table, url).host_str().unwrap(), "a.foo.bar.com");
}

0 comments on commit 6f590a8

Please sign in to comment.