From fb5779fe8f4399ed3dc759a709bfbc420d81ea54 Mon Sep 17 00:00:00 2001 From: Sven-Hendrik Haase Date: Wed, 9 Oct 2019 00:56:55 +0200 Subject: [PATCH] Always send body whole and don't use transfer encoding Without doing this, body size would be unknown at the time of sending, causing awc to use transfer encoding which is probably unexpected in most cases. This change makes behavior more obvious. --- http-proxy/src/main.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/http-proxy/src/main.rs b/http-proxy/src/main.rs index a68b46f1..de05dbe8 100644 --- a/http-proxy/src/main.rs +++ b/http-proxy/src/main.rs @@ -7,7 +7,7 @@ use url::Url; fn forward( req: HttpRequest, - payload: web::Payload, + body: web::Bytes, url: web::Data, client: web::Data, ) -> impl Future { @@ -25,14 +25,16 @@ fn forward( }; forwarded_req - .send_stream(payload) + .send_body(body) .map_err(Error::from) .map(|res| { let mut client_resp = HttpResponse::build(res.status()); + // Remove `Connection` as per + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Connection#Directives for (header_name, header_value) in res .headers() .iter() - .filter(|(h, _)| *h != "connection" && *h != "content-length") + .filter(|(h, _)| *h != "connection") { client_resp.header(header_name.clone(), header_value.clone()); }