aboutsummaryrefslogtreecommitdiff
path: root/src/web
diff options
context:
space:
mode:
Diffstat (limited to 'src/web')
-rw-r--r--src/web/error.rs11
-rw-r--r--src/web/web_server.rs1
2 files changed, 11 insertions, 1 deletions
diff --git a/src/web/error.rs b/src/web/error.rs
index 426155c1..55990e9d 100644
--- a/src/web/error.rs
+++ b/src/web/error.rs
@@ -1,5 +1,6 @@
use err_derive::Error;
-use hyper::StatusCode;
+use hyper::header::HeaderValue;
+use hyper::{HeaderMap, StatusCode};
use garage_util::error::Error as GarageError;
@@ -47,4 +48,12 @@ impl Error {
_ => StatusCode::BAD_REQUEST,
}
}
+
+ pub fn add_headers(&self, header_map: &mut HeaderMap<HeaderValue>) {
+ #[allow(clippy::single_match)]
+ match self {
+ Error::ApiError(e) => e.add_headers(header_map),
+ _ => (),
+ }
+ }
}
diff --git a/src/web/web_server.rs b/src/web/web_server.rs
index e9c5039d..4a603c05 100644
--- a/src/web/web_server.rs
+++ b/src/web/web_server.rs
@@ -62,6 +62,7 @@ fn error_to_res(e: Error) -> Response<Body> {
let body: Body = Body::from(format!("{}\n", e));
let mut http_error = Response::new(body);
*http_error.status_mut() = e.http_status_code();
+ e.add_headers(http_error.headers_mut());
http_error
}