Unify ReadResult and Data.

This commit is contained in:
Ms2ger 2016-11-22 01:01:36 +01:00
parent 74ea269fc3
commit 675d8f518c
2 changed files with 8 additions and 12 deletions

View file

@ -9,7 +9,7 @@ use devtools_traits::DevtoolsControlMsg;
use fetch::cors_cache::CorsCache; use fetch::cors_cache::CorsCache;
use filemanager_thread::FileManager; use filemanager_thread::FileManager;
use http_loader::{HttpState, set_default_accept_encoding, set_default_accept_language, set_request_cookies}; use http_loader::{HttpState, set_default_accept_encoding, set_default_accept_language, set_request_cookies};
use http_loader::{NetworkHttpRequestFactory, ReadResult, StreamedResponse, obtain_response, read_block}; use http_loader::{NetworkHttpRequestFactory, StreamedResponse, obtain_response, read_block};
use http_loader::{auth_from_cache, determine_request_referrer, set_cookies_from_headers}; use http_loader::{auth_from_cache, determine_request_referrer, set_cookies_from_headers};
use http_loader::{send_response_to_devtools, send_request_to_devtools, LoadErrorType}; use http_loader::{send_response_to_devtools, send_request_to_devtools, LoadErrorType};
use hyper::header::{Accept, AcceptLanguage, Authorization, AccessControlAllowCredentials}; use hyper::header::{Accept, AcceptLanguage, Authorization, AccessControlAllowCredentials};
@ -46,7 +46,7 @@ use uuid;
pub type Target = Option<Box<FetchTaskTarget + Send>>; pub type Target = Option<Box<FetchTaskTarget + Send>>;
enum Data { pub enum Data {
Payload(Vec<u8>), Payload(Vec<u8>),
Done, Done,
} }
@ -1061,7 +1061,7 @@ fn http_network_fetch(request: Rc<Request>,
loop { loop {
match read_block(&mut res) { match read_block(&mut res) {
Ok(ReadResult::Payload(chunk)) => { Ok(Data::Payload(chunk)) => {
if let ResponseBody::Receiving(ref mut body) = *res_body.lock().unwrap() { if let ResponseBody::Receiving(ref mut body) = *res_body.lock().unwrap() {
body.extend_from_slice(&chunk); body.extend_from_slice(&chunk);
if let Some(ref sender) = done_sender { if let Some(ref sender) = done_sender {
@ -1069,7 +1069,7 @@ fn http_network_fetch(request: Rc<Request>,
} }
} }
}, },
Ok(ReadResult::EOF) | Err(_) => { Ok(Data::Done) | Err(_) => {
let mut empty_vec = Vec::new(); let mut empty_vec = Vec::new();
let completed_body = match *res_body.lock().unwrap() { let completed_body = match *res_body.lock().unwrap() {
ResponseBody::Receiving(ref mut body) => { ResponseBody::Receiving(ref mut body) => {

View file

@ -9,6 +9,7 @@ use cookie;
use cookie_storage::CookieStorage; use cookie_storage::CookieStorage;
use devtools_traits::{ChromeToDevtoolsControlMsg, DevtoolsControlMsg, HttpRequest as DevtoolsHttpRequest}; use devtools_traits::{ChromeToDevtoolsControlMsg, DevtoolsControlMsg, HttpRequest as DevtoolsHttpRequest};
use devtools_traits::{HttpResponse as DevtoolsHttpResponse, NetworkEvent}; use devtools_traits::{HttpResponse as DevtoolsHttpResponse, NetworkEvent};
use fetch::methods::Data;
use flate2::read::{DeflateDecoder, GzDecoder}; use flate2::read::{DeflateDecoder, GzDecoder};
use hsts::HstsList; use hsts::HstsList;
use hyper::Error as HttpError; use hyper::Error as HttpError;
@ -38,20 +39,15 @@ use time;
use time::Tm; use time::Tm;
use url::Origin as UrlOrigin; use url::Origin as UrlOrigin;
pub enum ReadResult { pub fn read_block<R: Read>(reader: &mut R) -> Result<Data, ()> {
Payload(Vec<u8>),
EOF,
}
pub fn read_block<R: Read>(reader: &mut R) -> Result<ReadResult, ()> {
let mut buf = vec![0; 1024]; let mut buf = vec![0; 1024];
match reader.read(&mut buf) { match reader.read(&mut buf) {
Ok(len) if len > 0 => { Ok(len) if len > 0 => {
buf.truncate(len); buf.truncate(len);
Ok(ReadResult::Payload(buf)) Ok(Data::Payload(buf))
} }
Ok(_) => Ok(ReadResult::EOF), Ok(_) => Ok(Data::Done),
Err(_) => Err(()), Err(_) => Err(()),
} }
} }