aboutsummaryrefslogtreecommitdiffstats
path: root/src/errors.rs
diff options
context:
space:
mode:
authorJonas Diemer <jonasdiemer@gmail.com>2022-09-19 14:43:50 +0000
committerJonas Diemer <jonasdiemer@gmail.com>2022-09-19 14:43:50 +0000
commit20a055dd82b009e94b1aa681cc4329f17e552f44 (patch)
tree5e01f1cc32283ffdb2ab87cf6b858f0431665afd /src/errors.rs
parentFixed clippy issue (single-char string to char) (diff)
downloadminiserve-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.rs6
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,
}
}