handle unexpected mime type errors

This commit is contained in:
yggverse 2025-01-18 04:19:15 +02:00
parent 9d4f2a2cbf
commit 9d690d3137

View File

@ -62,9 +62,8 @@ pub fn handle(
}, },
})), })),
// https://geminiprotocol.net/docs/protocol-specification.gmi#status-20 // https://geminiprotocol.net/docs/protocol-specification.gmi#status-20
Status::Success => { Status::Success => match response.meta.mime {
let mime = response.meta.mime.unwrap(); // @TODO handle Some(mime) => match mime.as_str() {
match mime.as_str() {
"text/gemini" => Text::from_stream_async( "text/gemini" => Text::from_stream_async(
response.connection.stream(), response.connection.stream(),
Priority::DEFAULT, Priority::DEFAULT,
@ -91,8 +90,11 @@ pub fn handle(
mime: mime.to_string(), mime: mime.to_string(),
message: format!("Content type `{mime}` yet not supported"), message: format!("Content type `{mime}` yet not supported"),
})), })),
} // @TODO handle `None` },
} None => callback(Response::Failure(Failure::Error {
message: "MIME type not found".to_string(),
})),
},
// https://geminiprotocol.net/docs/protocol-specification.gmi#status-30-temporary-redirection // https://geminiprotocol.net/docs/protocol-specification.gmi#status-30-temporary-redirection
Status::Redirect => callback(match response.meta.data { Status::Redirect => callback(match response.meta.data {
Some(data) => match Uri::parse_relative(&base, data.as_str(), UriFlags::NONE) { Some(data) => match Uri::parse_relative(&base, data.as_str(), UriFlags::NONE) {