mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Cleanup resource_task's global_init().
This commit is contained in:
parent
aa6ed369b8
commit
2cde68f13f
2 changed files with 24 additions and 12 deletions
|
@ -2,6 +2,7 @@
|
|||
* 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/. */
|
||||
|
||||
#![feature(alloc)]
|
||||
#![feature(box_syntax)]
|
||||
#![feature(collections)]
|
||||
#![feature(core)]
|
||||
|
|
|
@ -23,9 +23,9 @@ use hyper::mime::{Mime, Attr};
|
|||
use url::Url;
|
||||
|
||||
use std::borrow::{ToOwned, IntoCow};
|
||||
use std::boxed;
|
||||
use std::collections::HashMap;
|
||||
use std::env;
|
||||
use std::mem;
|
||||
use std::old_io::{BufferedReader, File};
|
||||
use std::sync::mpsc::{channel, Receiver, Sender};
|
||||
use std::thunk::Invoke;
|
||||
|
@ -38,18 +38,27 @@ use std::old_io::net::tcp::TcpListener;
|
|||
static mut HOST_TABLE: Option<*mut HashMap<String, String>> = None;
|
||||
|
||||
pub fn global_init() {
|
||||
if let Ok(host_file_path) = env::var("HOST_FILE") {
|
||||
//TODO: handle bad file path
|
||||
let path = Path::new(host_file_path);
|
||||
let mut file = BufferedReader::new(File::open(&path));
|
||||
if let Ok(lines) = file.read_to_string(){
|
||||
let path = match env::var("HOST_FILE") {
|
||||
Ok(host_file_path) => Path::new(host_file_path),
|
||||
Err(_) => return,
|
||||
};
|
||||
|
||||
let mut file = match File::open(&path) {
|
||||
Ok(f) => BufferedReader::new(f),
|
||||
Err(_) => return,
|
||||
};
|
||||
|
||||
let lines = match file.read_to_string() {
|
||||
Ok(lines) => lines,
|
||||
Err(_) => return,
|
||||
};
|
||||
|
||||
unsafe {
|
||||
let host_table: *mut HashMap<String, String> = mem::transmute(parse_hostsfile(lines.as_slice()));
|
||||
let host_table = boxed::into_raw(parse_hostsfile(lines.as_slice()));
|
||||
HOST_TABLE = Some(host_table);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub enum ControlMsg {
|
||||
/// Request the data associated with a particular URL
|
||||
|
@ -526,7 +535,9 @@ fn test_replace_hosts() {
|
|||
host_table_box.insert("foo.bar.com".to_owned(), "127.0.0.1".to_owned());
|
||||
host_table_box.insert("servo.test.server".to_owned(), "127.0.0.2".to_owned());
|
||||
|
||||
let host_table: *mut HashMap<String, String> = unsafe {mem::transmute(host_table_box)};
|
||||
let host_table: *mut HashMap<String, String> = unsafe {
|
||||
boxed::into_raw(host_table_box)
|
||||
};
|
||||
|
||||
//Start the TCP server
|
||||
let mut listener = TcpListener::bind("127.0.0.1:0").unwrap();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue