From 07bf49b0e5e879025f89e9b2e4e70dd72c760ea3 Mon Sep 17 00:00:00 2001 From: Jose Quintana Date: Tue, 21 Apr 2020 10:12:42 +0200 Subject: [PATCH] refactor: empty response body only on HEAD requests & status error http status errors like 404 or 50x --- src/error_page.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/error_page.rs b/src/error_page.rs index 832533e..1f43564 100644 --- a/src/error_page.rs +++ b/src/error_page.rs @@ -1,6 +1,4 @@ -use iron::headers::ContentLength; use iron::mime; -use iron::modifiers::Header; use iron::prelude::*; use iron::status; use iron::AfterMiddleware; @@ -41,6 +39,8 @@ impl ErrorPage { impl AfterMiddleware for ErrorPage { fn after(&self, req: &mut Request, resp: Response) -> IronResult { let content_type = "text/html".parse::().unwrap(); + let mut no_status_error = false; + let mut resp = match resp.status { Some(status::NotFound) => { Response::with((content_type, status::NotFound, self.page404.as_str())) @@ -61,13 +61,15 @@ impl AfterMiddleware for ErrorPage { Some(status::GatewayTimeout) => { Response::with((content_type, status::GatewayTimeout, self.page50x.as_str())) } - _ => resp, + _ => { + no_status_error = true; + resp + } }; - // Empty response body on HEAD requests - if req.method == iron::method::Head { + // Empty response body only on HEAD requests and status error (404,50x) + if req.method == iron::method::Head && !no_status_error { resp.set_mut(Vec::new()); - resp.set_mut(Header(ContentLength(0))); } Ok(resp) -- libgit2 1.7.2