diff options
author | Jonas Diemer <jonasdiemer@gmail.com> | 2022-09-19 14:43:50 +0000 |
---|---|---|
committer | Jonas Diemer <jonasdiemer@gmail.com> | 2022-09-19 14:43:50 +0000 |
commit | 20a055dd82b009e94b1aa681cc4329f17e552f44 (patch) | |
tree | 5e01f1cc32283ffdb2ab87cf6b858f0431665afd /src/errors.rs | |
parent | Fixed clippy issue (single-char string to char) (diff) | |
download | miniserve-20a055dd82b009e94b1aa681cc4329f17e552f44.tar.gz miniserve-20a055dd82b009e94b1aa681cc4329f17e552f44.zip |
Return 403 instead of 500 for upload errs
Diffstat (limited to 'src/errors.rs')
-rw-r--r-- | src/errors.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/errors.rs b/src/errors.rs index b2ed459..06569d3 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -22,6 +22,10 @@ pub enum ContextualError { #[error("File already exists, and the overwrite_files option has not been set")] DuplicateFileError, + /// Upload not allowed + #[error("Upload not allowed to this directory")] + UploadForbiddenError, + /// Any error related to an invalid path (failed to retrieve entry name, unexpected entry type, etc) #[error("Invalid path\ncaused by: {0}")] InvalidPathError(String), @@ -88,6 +92,8 @@ impl ResponseError for ContextualError { Self::InsufficientPermissionsError(_) => StatusCode::FORBIDDEN, Self::InvalidHttpCredentials => StatusCode::UNAUTHORIZED, Self::InvalidHttpRequestError(_) => StatusCode::BAD_REQUEST, + Self::DuplicateFileError => StatusCode::FORBIDDEN, + Self::UploadForbiddenError => StatusCode::FORBIDDEN, _ => StatusCode::INTERNAL_SERVER_ERROR, } } |