diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-11-15 08:38:52 +0100 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-11-26 09:34:14 +0100 |
commit | ef57ecbdb7864d924322f59a80ebd3c8c947b50e (patch) | |
tree | b106207bde99a5761de8b3d504af19e1860c2ef5 /components/net/filemanager_thread.rs | |
parent | 79d27cb7ca0267092496dbbef24844ca5ab14fb4 (diff) | |
download | servo-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.rs | 7 |
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 }; |