diff options
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/Cargo.toml | 2 | ||||
-rw-r--r-- | src/api/error.rs | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/api/Cargo.toml b/src/api/Cargo.toml index b46652df..ebbe7c0d 100644 --- a/src/api/Cargo.toml +++ b/src/api/Cargo.toml @@ -35,7 +35,7 @@ tokio = { version = "1.0", default-features = false, features = ["rt", "rt-multi http = "0.2" httpdate = "0.3" http-range = "0.1" -hyper = "0.14" +hyper = { version = "0.14", features = ["server", "http1", "runtime", "tcp", "stream"] } percent-encoding = "2.1.0" roxmltree = "0.14" serde = { version = "1.0", features = ["derive"] } diff --git a/src/api/error.rs b/src/api/error.rs index 7d97366e..35fa404f 100644 --- a/src/api/error.rs +++ b/src/api/error.rs @@ -82,7 +82,9 @@ impl Error { match self { Error::NotFound => StatusCode::NOT_FOUND, Error::Forbidden(_) => StatusCode::FORBIDDEN, - Error::InternalError(GarageError::Rpc(_)) => StatusCode::SERVICE_UNAVAILABLE, + Error::InternalError( + GarageError::Timeout | GarageError::RemoteError(_) | GarageError::TooManyErrors(_), + ) => StatusCode::SERVICE_UNAVAILABLE, Error::InternalError(_) | Error::Hyper(_) | Error::Http(_) => { StatusCode::INTERNAL_SERVER_ERROR } @@ -95,7 +97,9 @@ impl Error { Error::NotFound => "NoSuchKey", Error::Forbidden(_) => "AccessDenied", Error::AuthorizationHeaderMalformed(_) => "AuthorizationHeaderMalformed", - Error::InternalError(GarageError::Rpc(_)) => "ServiceUnavailable", + Error::InternalError( + GarageError::Timeout | GarageError::RemoteError(_) | GarageError::TooManyErrors(_), + ) => "ServiceUnavailable", Error::InternalError(_) | Error::Hyper(_) | Error::Http(_) => "InternalError", _ => "InvalidRequest", } |