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);
|
||||
}
|
||||
|
||||
#[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]
|
||||
async fn test_named_file_content_range_headers() {
|
||||
let srv = actix_test::start(|| App::new().service(Files::new("/", ".")));
|
||||
|
|
|
|||
|
|
@ -550,9 +550,12 @@ impl NamedFile {
|
|||
// check for range header
|
||||
if let Some(ranges) = req.headers().get(header::RANGE) {
|
||||
if let Ok(ranges_header) = ranges.to_str() {
|
||||
if let Ok(ranges) = HttpRange::parse(ranges_header, length) {
|
||||
length = ranges[0].length;
|
||||
offset = ranges[0].start;
|
||||
if let Some(range) = HttpRange::parse(ranges_header, length)
|
||||
.ok()
|
||||
.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
|
||||
// for video content, it prevents browser video players from starting playback
|
||||
|
|
|
|||
Loading…
Reference in New Issue