From a0565e2fbdb4e36564fa48ddd21c24fb7d4bac33 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Sun, 20 Dec 2020 21:41:25 -0800 Subject: [PATCH] Restore Content-Length header for streaming snapshot download (cherry picked from commit 57b03c5bc16583dedb1bac52cc64dde205684051) --- 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())), ),