mirror of
https://github.com/kharonsec/garage.git
synced 2026-04-25 12:44:54 +02:00
chore: update quick-xml dep
rework associated error, and fixup error for XML serialization. Should be InternalError/INTERNAL_SERVER_ERROR not MalformedXML/BAD_REQUEST
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -3737,9 +3737,9 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
|
||||
|
||||
[[package]]
|
||||
name = "quick-xml"
|
||||
version = "0.26.0"
|
||||
version = "0.39.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd"
|
||||
checksum = "f2e3bf4aa9d243beeb01a7b3bc30b77cfe2c44e24ec02d751a7104a53c2c49a1"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"serde",
|
||||
|
||||
@@ -95,7 +95,7 @@ fjall = "2.11"
|
||||
async-compression = { version = "0.4", features = ["tokio", "zstd"] }
|
||||
zstd = { version = "0.13", default-features = false }
|
||||
|
||||
quick-xml = { version = "0.26", features = ["serialize"] }
|
||||
quick-xml = { version = "0.39", features = ["serialize"] }
|
||||
rmp-serde = "1.3"
|
||||
serde = { version = "1.0", default-features = false, features = ["derive", "rc"] }
|
||||
serde_bytes = "0.11"
|
||||
|
||||
@@ -69,8 +69,16 @@ pub enum Error {
|
||||
InvalidUtf8String(#[from] std::string::FromUtf8Error),
|
||||
|
||||
/// The client sent invalid XML data
|
||||
#[error("Invalid XML: {0}")]
|
||||
InvalidXml(String),
|
||||
#[error("failed to deserialize XML")]
|
||||
InvalidXml(#[from] roxmltree::Error),
|
||||
|
||||
/// The client sent invalid XML data
|
||||
#[error("XML deserialization failed")]
|
||||
InvalidXmlDe(#[from] quick_xml::de::DeError),
|
||||
|
||||
/// The server failed to serialize data into XML
|
||||
#[error("failed to serialize XML")]
|
||||
InvalidXmlSe(#[from] quick_xml::se::SeError),
|
||||
|
||||
/// The client sent a range header with invalid value
|
||||
#[error("Invalid HTTP range: {0:?}")]
|
||||
@@ -105,18 +113,6 @@ impl From<(http_range::HttpRangeParseError, u64)> for Error {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<roxmltree::Error> for Error {
|
||||
fn from(err: roxmltree::Error) -> Self {
|
||||
Self::InvalidXml(format!("{}", err))
|
||||
}
|
||||
}
|
||||
|
||||
impl From<quick_xml::de::DeError> for Error {
|
||||
fn from(err: quick_xml::de::DeError) -> Self {
|
||||
Self::InvalidXml(format!("{}", err))
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SignatureError> for Error {
|
||||
fn from(err: SignatureError) -> Self {
|
||||
match err {
|
||||
@@ -149,6 +145,8 @@ impl Error {
|
||||
Error::AuthorizationHeaderMalformed(_) => "AuthorizationHeaderMalformed",
|
||||
Error::NotImplemented(_) => "NotImplemented",
|
||||
Error::InvalidXml(_) => "MalformedXML",
|
||||
Error::InvalidXmlDe(_) => "MalformedXML",
|
||||
Error::InvalidXmlSe(_) => "InternalError",
|
||||
Error::InvalidRange(_) => "InvalidRange",
|
||||
Error::InvalidDigest(_) => "InvalidDigest",
|
||||
Error::InvalidUtf8Str(_) | Error::InvalidUtf8String(_) => "InvalidRequest",
|
||||
@@ -166,6 +164,7 @@ impl ApiError for Error {
|
||||
Error::PreconditionFailed => StatusCode::PRECONDITION_FAILED,
|
||||
Error::InvalidRange(_) => StatusCode::RANGE_NOT_SATISFIABLE,
|
||||
Error::NotImplemented(_) => StatusCode::NOT_IMPLEMENTED,
|
||||
Error::InvalidXmlSe(_) => StatusCode::INTERNAL_SERVER_ERROR,
|
||||
Error::AuthorizationHeaderMalformed(_)
|
||||
| Error::InvalidPart
|
||||
| Error::InvalidPartOrder
|
||||
@@ -173,6 +172,7 @@ impl ApiError for Error {
|
||||
| Error::InvalidDigest(_)
|
||||
| Error::InvalidEncryptionAlgorithm(_)
|
||||
| Error::InvalidXml(_)
|
||||
| Error::InvalidXmlDe(_)
|
||||
| Error::InvalidUtf8Str(_)
|
||||
| Error::InvalidUtf8String(_) => StatusCode::BAD_REQUEST,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user