mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Moves HSTS includeSubdomains enum to net_traits
This commit is contained in:
parent
82cafc4274
commit
bae979137a
5 changed files with 49 additions and 38 deletions
|
@ -5,6 +5,7 @@
|
|||
use rustc_serialize::json::{decode};
|
||||
use time;
|
||||
use url::Url;
|
||||
use net_traits::IncludeSubdomains;
|
||||
use resource_task::{IPV4_REGEX, IPV6_REGEX};
|
||||
|
||||
use std::str::{from_utf8};
|
||||
|
@ -19,20 +20,14 @@ pub struct HSTSEntry {
|
|||
pub timestamp: Option<u64>
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Copy, Clone)]
|
||||
pub enum Subdomains {
|
||||
Included,
|
||||
NotIncluded
|
||||
}
|
||||
|
||||
impl HSTSEntry {
|
||||
pub fn new(host: String, subdomains: Subdomains, max_age: Option<u64>) -> Option<HSTSEntry> {
|
||||
pub fn new(host: String, subdomains: IncludeSubdomains, max_age: Option<u64>) -> Option<HSTSEntry> {
|
||||
if IPV4_REGEX.is_match(&host) || IPV6_REGEX.is_match(&host) {
|
||||
None
|
||||
} else {
|
||||
Some(HSTSEntry {
|
||||
host: host,
|
||||
include_subdomains: (subdomains == Subdomains::Included),
|
||||
include_subdomains: (subdomains == IncludeSubdomains::Included),
|
||||
max_age: max_age,
|
||||
timestamp: Some(time::get_time().sec as u64)
|
||||
})
|
||||
|
|
|
@ -19,7 +19,7 @@ use util::opts;
|
|||
use util::task::spawn_named;
|
||||
use url::Url;
|
||||
|
||||
use hsts::{HSTSList, HSTSEntry, Subdomains, preload_hsts_domains};
|
||||
use hsts::{HSTSList, HSTSEntry, preload_hsts_domains};
|
||||
|
||||
use devtools_traits::{DevtoolsControlMsg};
|
||||
use hyper::header::{ContentType, Header, SetCookie, UserAgent};
|
||||
|
@ -236,13 +236,7 @@ impl ResourceChannelManager {
|
|||
consumer.send(self.resource_manager.cookie_storage.cookies_for_url(&url, source)).unwrap();
|
||||
}
|
||||
ControlMsg::SetHSTSEntryForHost(host, include_subdomains, max_age) => {
|
||||
let subdomains = if include_subdomains {
|
||||
Subdomains::Included
|
||||
} else {
|
||||
Subdomains::NotIncluded
|
||||
};
|
||||
|
||||
if let Some(entry) = HSTSEntry::new(host, subdomains, max_age) {
|
||||
if let Some(entry) = HSTSEntry::new(host, include_subdomains, max_age) {
|
||||
self.resource_manager.add_hsts_entry(entry)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -119,6 +119,12 @@ pub enum LoadConsumer {
|
|||
/// Handle to a resource task
|
||||
pub type ResourceTask = Sender<ControlMsg>;
|
||||
|
||||
#[derive(PartialEq, Copy, Clone)]
|
||||
pub enum IncludeSubdomains {
|
||||
Included,
|
||||
NotIncluded
|
||||
}
|
||||
|
||||
pub enum ControlMsg {
|
||||
/// Request the data associated with a particular URL
|
||||
Load(LoadData, LoadConsumer),
|
||||
|
@ -127,7 +133,7 @@ pub enum ControlMsg {
|
|||
/// Retrieve the stored cookies for a given URL
|
||||
GetCookiesForUrl(Url, Sender<Option<String>>, CookieSource),
|
||||
/// Store a domain's STS information
|
||||
SetHSTSEntryForHost(String, bool, Option<u64>),
|
||||
SetHSTSEntryForHost(String, IncludeSubdomains, Option<u64>),
|
||||
Exit
|
||||
}
|
||||
|
||||
|
|
2
components/servo/Cargo.lock
generated
2
components/servo/Cargo.lock
generated
|
@ -875,8 +875,8 @@ dependencies = [
|
|||
"hyper 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"net 0.0.1",
|
||||
"net_traits 0.0.1",
|
||||
"url 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"time 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"url 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"util 0.0.1",
|
||||
]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue