From d06efc7704092a549c886be701122ad420db5543 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Thu, 24 Feb 2022 10:05:50 -0300 Subject: [PATCH] fix(core): parse range `bytes=0-*`, closes #3143 (#3516) --- .changes/range-parse-asterisk.md | 5 +++++ core/tauri/src/manager.rs | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 .changes/range-parse-asterisk.md diff --git a/.changes/range-parse-asterisk.md b/.changes/range-parse-asterisk.md new file mode 100644 index 000000000..b2ad0ddec --- /dev/null +++ b/.changes/range-parse-asterisk.md @@ -0,0 +1,5 @@ +--- +"tauri": patch +--- + +Allow range in the form of `bytes=0-*` on the asset protocol. diff --git a/core/tauri/src/manager.rs b/core/tauri/src/manager.rs index 8f8315f90..725cf7312 100644 --- a/core/tauri/src/manager.rs +++ b/core/tauri/src/manager.rs @@ -558,11 +558,18 @@ impl WindowManager { } }; // parse the range - let range = match crate::runtime::http::HttpRange::parse(&range, file_size) { + let range = match crate::runtime::http::HttpRange::parse( + &if range.ends_with("-*") { + range.chars().take(range.len() - 1).collect::() + } else { + range.clone() + }, + file_size, + ) { Ok(r) => r, Err(e) => { #[cfg(debug_assertions)] - eprintln!("Failed to parse range: {:?}", e); + eprintln!("Failed to parse range {}: {:?}", range, e); return (headers, 400, buf); } };