diff options
Diffstat (limited to 'src/modules/files.rs')
-rw-r--r-- | src/modules/files.rs | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/modules/files.rs b/src/modules/files.rs index ab98f66..a37098d 100644 --- a/src/modules/files.rs +++ b/src/modules/files.rs @@ -119,7 +119,7 @@ impl Node for Files { *r.status_mut() = StatusCode::FOUND; r.headers_mut().insert( LOCATION, - HeaderValue::from_str(&format!("{}/", rpath)) + HeaderValue::from_str(&format!("{rpath}/")) .map_err(|_| ServiceError::Other)?, ); return Ok(r.map(|b| b.map_err(|e| match e {}).boxed())); @@ -192,22 +192,20 @@ impl Node for Files { if skip_body { *r.status_mut() = StatusCode::NOT_MODIFIED; - } else { - if range_satisfied { - if range.end - range.start != metadata.len() { - *r.status_mut() = StatusCode::PARTIAL_CONTENT; - r.headers_mut().typed_insert( - ContentRange::bytes(range.clone(), metadata.len()) - .expect("valid ContentRange"), - ); - } else { - *r.status_mut() = StatusCode::OK; - } + } else if range_satisfied { + if range.end - range.start != metadata.len() { + *r.status_mut() = StatusCode::PARTIAL_CONTENT; + r.headers_mut().typed_insert( + ContentRange::bytes(range.clone(), metadata.len()) + .expect("valid ContentRange"), + ); } else { - *r.status_mut() = StatusCode::RANGE_NOT_SATISFIABLE; - r.headers_mut() - .typed_insert(ContentRange::unsatisfied_bytes(metadata.len())); + *r.status_mut() = StatusCode::OK; } + } else { + *r.status_mut() = StatusCode::RANGE_NOT_SATISFIABLE; + r.headers_mut() + .typed_insert(ContentRange::unsatisfied_bytes(metadata.len())); } r.headers_mut().typed_insert(AcceptRanges::bytes()); |