aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/filemanager_thread.rs
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-11-15 08:38:52 +0100
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-11-26 09:34:14 +0100
commitef57ecbdb7864d924322f59a80ebd3c8c947b50e (patch)
treeb106207bde99a5761de8b3d504af19e1860c2ef5 /components/net/filemanager_thread.rs
parent79d27cb7ca0267092496dbbef24844ca5ab14fb4 (diff)
downloadservo-ef57ecbdb7864d924322f59a80ebd3c8c947b50e.tar.gz
servo-ef57ecbdb7864d924322f59a80ebd3c8c947b50e.zip
Tweak limits of file chunked read and send chunks not entire body as partial payloads
Diffstat (limited to 'components/net/filemanager_thread.rs')
-rw-r--r--components/net/filemanager_thread.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/components/net/filemanager_thread.rs b/components/net/filemanager_thread.rs
index 3a639cbb741..dce6da0ed0f 100644
--- a/components/net/filemanager_thread.rs
+++ b/components/net/filemanager_thread.rs
@@ -817,7 +817,7 @@ pub fn fetch_file_in_chunks(
{
if let Some(end) = range.end {
let remaining_bytes =
- end as usize - range.start as usize - body.len();
+ end as usize - range.start as usize - body.len() + 1;
if remaining_bytes <= FILE_CHUNK_SIZE {
// This is the last chunk so we set buffer
// len to 0 to break the reading loop.
@@ -832,8 +832,9 @@ pub fn fetch_file_in_chunks(
},
buffer.len(),
);
- body.extend_from_slice(&buffer[0..offset]);
- let _ = done_sender.send(Data::Payload(buffer));
+ let chunk = &buffer[0..offset];
+ body.extend_from_slice(chunk);
+ let _ = done_sender.send(Data::Payload(chunk.to_vec()));
}
buffer_len
};