From 2298fc335300e67af28080f320424f8404abf699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 14 May 2016 17:20:51 +0300 Subject: [PATCH] Some more error handling in the HTTP source --- src/rshttpsrc.rs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/rshttpsrc.rs b/src/rshttpsrc.rs index 2db28000..80d83cc0 100644 --- a/src/rshttpsrc.rs +++ b/src/rshttpsrc.rs @@ -84,17 +84,24 @@ impl Source for HttpSrc { match self.url { None => return false, Some(ref url) => { - let response = self.client.get(url.clone()).send().unwrap(); - if response.status.is_success() { - match response.headers.get::() { - Some(&ContentLength(size)) => self.size = size, - _ => self.size = u64::MAX + match self.client.get(url.clone()).send() { + Ok(response) => { + if response.status.is_success() { + self.size = match response.headers.get::() { + Some(&ContentLength(size)) => size, + _ => u64::MAX + }; + self.response = Some(response); + return true; + } else { + println_err!("Failed to fetch {}: {}", url, response.status); + return false; + } + }, + Err(err) => { + println_err!("Failed to fetch {}: {}", url, err.to_string()); + return false; } - self.response = Some(response); - return true; - } else { - println_err!("Failed to fetch {}: {}", url, response.status); - return false; } }, }