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); } };