From dbb9746ede6b75882f2bbb3206a1cd449c1a9bd9 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 26 Mar 2022 22:53:57 +0000 Subject: [PATCH] actix: Log an error if we have an internal server error Signed-off-by: Ian Jackson --- daemon/api.rs | 4 +--- daemon/main.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/daemon/api.rs b/daemon/api.rs index 1337b7a7..4ec910f6 100644 --- a/daemon/api.rs +++ b/daemon/api.rs @@ -90,9 +90,7 @@ impl ResponseError for FatalErrorResponse { } fn error_response(&self) -> HttpResponse { - self.status_code().respond_text( - &format_args!("Online-layer error\n{:?}\n{}\n", self, self) - ) + error_response(self) } } diff --git a/daemon/main.rs b/daemon/main.rs index 9ea649e0..fca559f0 100644 --- a/daemon/main.rs +++ b/daemon/main.rs @@ -317,6 +317,10 @@ impl ResponseError for BundleDownloadError { BDE::IE(_) => StatusCode::INTERNAL_SERVER_ERROR, } } + + fn error_response(&self) -> HttpResponse { + error_response(self) + } } #[route("/_/bundle/{instance}/{id}", method="GET", method="HEAD")] @@ -407,6 +411,18 @@ async fn not_found_handler(method: Method) -> impl Responder { } } +fn error_response(self_: &E) -> HttpResponse +where E: ResponseError + Debug + Display +{ + let status = self_.status_code(); + if status == StatusCode::INTERNAL_SERVER_ERROR { + error!("responding with internal error -- {} -- {:?}", self_, self_); + } + self_.status_code().respond_text( + &format_args!("{}\n{:?}\n", self_, self_) + ) +} + #[actix_web::main] // not compatible with fehler async fn main() -> Result<(),StartupError> { use structopt::StructOpt; -- 2.30.2