aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/net/http_loader.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/net/http_loader.rs')
-rw-r--r--src/components/net/http_loader.rs18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/components/net/http_loader.rs b/src/components/net/http_loader.rs
index 6eebffa37f0..26b52726c79 100644
--- a/src/components/net/http_loader.rs
+++ b/src/components/net/http_loader.rs
@@ -5,12 +5,13 @@
use resource_task::{Metadata, Payload, Done, LoadResponse, LoaderTask, start_sending};
use std::vec;
-use std::hashmap::HashSet;
+use collections::hashmap::HashSet;
use extra::url::Url;
use http::client::RequestWriter;
use http::method::Get;
use http::headers::HeaderEnum;
use std::io::Reader;
+use std::io::net::tcp::TcpStream;
use servo_util::task::spawn_named;
pub fn factory() -> LoaderTask {
@@ -55,8 +56,15 @@ fn load(mut url: Url, start_chan: Chan<LoadResponse>) {
info!("requesting {:s}", url.to_str());
- let request = ~RequestWriter::new(Get, url.clone());
- let mut response = match request.read_response() {
+ let request = RequestWriter::<TcpStream>::new(Get, url.clone());
+ let mut writer = match request {
+ Ok(w) => ~w,
+ Err(_) => {
+ send_error(url, start_chan);
+ return;
+ }
+ };
+ let mut response = match writer.read_response() {
Ok(r) => r,
Err(_) => {
send_error(url, start_chan);
@@ -91,11 +99,11 @@ fn load(mut url: Url, start_chan: Chan<LoadResponse>) {
unsafe { buf.set_len(1024); }
match response.read(buf) {
- Some(len) => {
+ Ok(len) => {
unsafe { buf.set_len(len); }
progress_chan.send(Payload(buf));
}
- None => {
+ Err(_) => {
progress_chan.send(Done(Ok(())));
break;
}