mirror of https://github.com/fafhrd91/actix-web
Merge commit from fork
This commit is contained in:
parent
d9b96e635d
commit
06a354fe52
|
|
@ -470,6 +470,24 @@ mod tests {
|
||||||
assert_eq!(response.status(), StatusCode::RANGE_NOT_SATISFIABLE);
|
assert_eq!(response.status(), StatusCode::RANGE_NOT_SATISFIABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn test_named_file_empty_range_headers() {
|
||||||
|
let srv = actix_test::start(|| App::new().service(Files::new("/", ".")));
|
||||||
|
|
||||||
|
for range in ["", "bytes="] {
|
||||||
|
let response = srv
|
||||||
|
.get("/tests/test.binary")
|
||||||
|
.insert_header((header::RANGE, range))
|
||||||
|
.send()
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert_eq!(response.status(), StatusCode::RANGE_NOT_SATISFIABLE);
|
||||||
|
let content_range = response.headers().get(header::CONTENT_RANGE).unwrap();
|
||||||
|
assert_eq!(content_range.to_str().unwrap(), "bytes */100");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[actix_rt::test]
|
#[actix_rt::test]
|
||||||
async fn test_named_file_content_range_headers() {
|
async fn test_named_file_content_range_headers() {
|
||||||
let srv = actix_test::start(|| App::new().service(Files::new("/", ".")));
|
let srv = actix_test::start(|| App::new().service(Files::new("/", ".")));
|
||||||
|
|
|
||||||
|
|
@ -550,9 +550,12 @@ impl NamedFile {
|
||||||
// check for range header
|
// check for range header
|
||||||
if let Some(ranges) = req.headers().get(header::RANGE) {
|
if let Some(ranges) = req.headers().get(header::RANGE) {
|
||||||
if let Ok(ranges_header) = ranges.to_str() {
|
if let Ok(ranges_header) = ranges.to_str() {
|
||||||
if let Ok(ranges) = HttpRange::parse(ranges_header, length) {
|
if let Some(range) = HttpRange::parse(ranges_header, length)
|
||||||
length = ranges[0].length;
|
.ok()
|
||||||
offset = ranges[0].start;
|
.and_then(|ranges| ranges.first().copied())
|
||||||
|
{
|
||||||
|
length = range.length;
|
||||||
|
offset = range.start;
|
||||||
|
|
||||||
// When a Content-Encoding header is present in a 206 partial content response
|
// When a Content-Encoding header is present in a 206 partial content response
|
||||||
// for video content, it prevents browser video players from starting playback
|
// for video content, it prevents browser video players from starting playback
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue