aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2020-04-28 10:35:04 +0000
committerAlex Auvolat <alex@adnab.me>2020-04-28 10:35:04 +0000
commit3686f100b7e46d60758e4a1cc70586444ddb5f7a (patch)
tree7c1869c4092cdd922a10ec291b94796f9affd1e1
parent0957d0fdfadb27e49c24d63994f52197a9c9cd1c (diff)
downloadgarage-3686f100b7e46d60758e4a1cc70586444ddb5f7a.tar.gz
garage-3686f100b7e46d60758e4a1cc70586444ddb5f7a.zip
Compatibility fixes
-rw-r--r--src/api/api_server.rs8
-rw-r--r--src/api/s3_list.rs6
2 files changed, 5 insertions, 9 deletions
diff --git a/src/api/api_server.rs b/src/api/api_server.rs
index 6ba5e532..af331a39 100644
--- a/src/api/api_server.rs
+++ b/src/api/api_server.rs
@@ -226,13 +226,7 @@ async fn handler_inner(
}
fn parse_bucket_key(path: &str) -> Result<(&str, Option<&str>), Error> {
- if !path.starts_with('/') {
- return Err(Error::BadRequest(format!(
- "Invalid path: {}, should start with a /",
- path
- )));
- }
- let path = &path[1..];
+ let path = path.trim_start_matches('/');
match path.find('/') {
Some(i) => Ok((&path[..i], Some(&path[i + 1..]))),
diff --git a/src/api/s3_list.rs b/src/api/s3_list.rs
index 88f76771..ffde609f 100644
--- a/src/api/s3_list.rs
+++ b/src/api/s3_list.rs
@@ -103,7 +103,8 @@ pub async fn handle_list(
writeln!(
&mut xml,
"\t\t<Key>{}</Key>",
- xml_encode_key(key, urlencode_resp)
+ xml_escape(key),
+ //xml_encode_key(key, urlencode_resp) // doesn't work with nextcloud, wtf
)
.unwrap();
writeln!(&mut xml, "\t\t<LastModified>{}</LastModified>", last_modif).unwrap();
@@ -117,7 +118,8 @@ pub async fn handle_list(
writeln!(
&mut xml,
"\t<Prefix>{}</Prefix>",
- xml_encode_key(pfx, urlencode_resp)
+ xml_escape(pfx),
+ //xml_encode_key(pfx, urlencode_resp)
)
.unwrap();
}