mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Unify ReadResult and Data.
This commit is contained in:
parent
74ea269fc3
commit
675d8f518c
2 changed files with 8 additions and 12 deletions
|
@ -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) => {
|
||||||
|
|
|
@ -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(()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue