From 252180c244a40d89d1f9aa9d772fb40d30b4bb94 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 21 Dec 2020 08:41:02 +0000 Subject: [PATCH] Restore Content-Length header for streaming snapshot download (#14222) (cherry picked from commit 57b03c5bc16583dedb1bac52cc64dde205684051) Co-authored-by: Michael Vines --- core/src/rpc_service.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/src/rpc_service.rs b/core/src/rpc_service.rs index 02acd13e5e..b6b950121c 100644 --- a/core/src/rpc_service.rs +++ b/core/src/rpc_service.rs @@ -129,7 +129,11 @@ impl RpcRequestMiddleware { } }; - info!("get {} -> {:?}", path, filename); + let file_length = std::fs::metadata(&filename) + .map(|m| m.len()) + .unwrap_or(0) + .to_string(); + info!("get {} -> {:?} ({} bytes)", path, filename, file_length); RequestMiddlewareAction::Respond { should_validate_hosts: true, @@ -142,7 +146,10 @@ impl RpcRequestMiddleware { .map(tokio_01_bytes::BytesMut::freeze); let body = hyper::Body::wrap_stream(stream); - Ok(hyper::Response::new(body)) + Ok(hyper::Response::builder() + .header(hyper::header::CONTENT_LENGTH, file_length) + .body(body) + .unwrap()) }) .or_else(|_| Ok(RpcRequestMiddleware::not_found())), ),