diff options
| author | Fuwn <[email protected]> | 2022-03-27 04:16:22 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-03-27 04:16:22 +0000 |
| commit | c01d0ae46a4a3a1d85cab9a49442283718b1fb88 (patch) | |
| tree | 2dd7576792a406d8264c39fcaaf5728826102673 /src | |
| parent | refactor(router): more generic errors (diff) | |
| download | windmark-c01d0ae46a4a3a1d85cab9a49442283718b1fb88.tar.xz windmark-c01d0ae46a4a3a1d85cab9a49442283718b1fb88.zip | |
feat(response): implement many more responses
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 8 | ||||
| -rw-r--r-- | src/response.rs | 66 |
2 files changed, 67 insertions, 7 deletions
@@ -328,12 +328,12 @@ impl Router { "{}{}\r\n{}", response_status, match response_status { - 10 | 11 | 40 | 50 | 51 => &*content, - _ => " text/gemini; charset=utf-8", + 20 => " text/gemini; charset=utf-8", + _ => &*content, }, match response_status { - 10 | 11 | 40 | 50 | 51 => "".to_string(), - _ => format!("{}{}{}", header, content, footer), + 20 => format!("{}{}{}", header, content, footer), + _ => "".to_string(), } ) .as_bytes(), diff --git a/src/response.rs b/src/response.rs index 8720eb6..239f8da 100644 --- a/src/response.rs +++ b/src/response.rs @@ -20,9 +20,19 @@ pub enum Response { Input(String), SensitiveInput(String), Success(String), - NotFound(String), TemporaryFailure(String), + ServerUnavailable(String), + CGIError(String), + ProxyError(String), + SlowDown(String), PermanentFailure(String), + NotFound(String), + Gone(String), + ProxyRefused(String), + BadRequest(String), + ClientCertificateRequired(String), + CertificateNotAuthorised(String), + CertificateNotValid(String), } pub(crate) fn to_value_set_status( @@ -50,8 +60,23 @@ pub(crate) fn to_value_set_status( value } - Response::NotFound(value) => { - *status = 51; + Response::ServerUnavailable(value) => { + *status = 41; + + value + } + Response::CGIError(value) => { + *status = 42; + + value + } + Response::ProxyError(value) => { + *status = 43; + + value + } + Response::SlowDown(value) => { + *status = 44; value } @@ -60,5 +85,40 @@ pub(crate) fn to_value_set_status( value } + Response::NotFound(value) => { + *status = 51; + + value + } + Response::Gone(value) => { + *status = 52; + + value + } + Response::ProxyRefused(value) => { + *status = 53; + + value + } + Response::BadRequest(value) => { + *status = 59; + + value + } + Response::ClientCertificateRequired(value) => { + *status = 60; + + value + } + Response::CertificateNotAuthorised(value) => { + *status = 61; + + value + } + Response::CertificateNotValid(value) => { + *status = 62; + + value + } } } |