diff --git a/actix-files/CHANGES.md b/actix-files/CHANGES.md index 021f8dc63..c77494575 100644 --- a/actix-files/CHANGES.md +++ b/actix-files/CHANGES.md @@ -1,5 +1,9 @@ # Changes +## [0.1.1] - 2019-06-01 + +* Static files are incorrectly served as both chunked and with length #812 + ## [0.1.0] - 2019-05-25 * NamedFile last-modified check always fails due to nano-seconds diff --git a/actix-files/Cargo.toml b/actix-files/Cargo.toml index 9ffbf0e7a..fa48fff08 100644 --- a/actix-files/Cargo.toml +++ b/actix-files/Cargo.toml @@ -19,6 +19,7 @@ path = "src/lib.rs" [dependencies] actix-web = "1.0.0-rc" +actix-http = "0.2.2" actix-service = "0.4.0" bitflags = "1" bytes = "0.4" diff --git a/actix-files/src/named.rs b/actix-files/src/named.rs index 2298e35af..29e9eee41 100644 --- a/actix-files/src/named.rs +++ b/actix-files/src/named.rs @@ -11,6 +11,7 @@ use bitflags::bitflags; use mime; use mime_guess::guess_mime_type; +use actix_http::body::SizedStream; use actix_web::http::header::{ self, ContentDisposition, DispositionParam, DispositionType, }; @@ -434,7 +435,7 @@ impl Responder for NamedFile { if offset != 0 || length != self.md.len() { return Ok(resp.status(StatusCode::PARTIAL_CONTENT).streaming(reader)); }; - Ok(resp.streaming(reader)) + Ok(resp.body(SizedStream::new(length, reader))) } } } diff --git a/src/lib.rs b/src/lib.rs index f84dbd5be..0e4a421ed 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -111,7 +111,7 @@ pub use actix_web_codegen::*; // re-export for convenience pub use actix_http::Response as HttpResponse; -pub use actix_http::{cookie, http, Error, HttpMessage, ResponseError, Result}; +pub use actix_http::{body, cookie, http, Error, HttpMessage, ResponseError, Result}; pub use crate::app::App; pub use crate::extract::FromRequest; @@ -143,7 +143,7 @@ pub mod dev { pub use crate::types::json::JsonBody; pub use crate::types::readlines::Readlines; - pub use actix_http::body::{Body, BodySize, MessageBody, ResponseBody}; + pub use actix_http::body::{Body, BodySize, MessageBody, ResponseBody, SizedStream}; pub use actix_http::encoding::Decoder as Decompress; pub use actix_http::ResponseBuilder as HttpResponseBuilder; pub use actix_http::{