Support website publishing #7

Merged
lx merged 61 commits from feature/website into master 2021-01-15 16:49:51 +00:00
Showing only changes of commit fad7bc405b - Show all commits

View file

@ -87,9 +87,8 @@ async fn serve_file(garage: Arc<Garage>, req: Request<Body>) -> Result<Response<
.ok_or(Error::NotFound)?; .ok_or(Error::NotFound)?;
match bucket_desc.state.get() { match bucket_desc.state.get() {
BucketState::Deleted => Err(Error::NotFound), BucketState::Present(params) if *params.website.get() => Ok(()),
BucketState::Present(params) if !params.website.get() => Err(Error::NotFound), _ => Err(Error::NotFound),
_ => Ok(()),
}?; }?;
quentin marked this conversation as resolved
Review

Rewrite as only two cases:

BucketState::Present(params) if params.website.get() => Ok(()),
_ => Err(Error::NotFound),
Rewrite as only two cases: ``` BucketState::Present(params) if params.website.get() => Ok(()), _ => Err(Error::NotFound), ```
// Get path // Get path
@ -123,8 +122,10 @@ fn authority_to_host(authority: &str) -> Result<&str, Error> {
let split = match first_char { let split = match first_char {
'[' => { '[' => {
let mut iter = iter.skip_while(|(_, c)| c != &']'); let mut iter = iter.skip_while(|(_, c)| c != &']');
iter.next().expect("Authority parsing logic error"); match iter.next() {
iter.next() Some((_, ']')) => iter.next(),
_ => None,
}
} }
_ => iter.skip_while(|(_, c)| c != &':').next(), _ => iter.skip_while(|(_, c)| c != &':').next(),
}; };
@ -214,6 +215,10 @@ mod tests {
assert_eq!(domain2, "garage.tld"); assert_eq!(domain2, "garage.tld");
let domain3 = authority_to_host("127.0.0.1")?; let domain3 = authority_to_host("127.0.0.1")?;
assert_eq!(domain3, "127.0.0.1"); assert_eq!(domain3, "127.0.0.1");
let domain4 = authority_to_host("[")?;
assert_eq!(domain4, "[");
let domain5 = authority_to_host("[hello")?;
assert_eq!(domain5, "[hello");
Ok(()) Ok(())
} }