mirror of
https://github.com/makew0rld/amfora.git
synced 2025-02-02 15:07:34 -05:00
✨ More fine-grained error codes, support client cert errors
This commit is contained in:
parent
6993c24470
commit
277cc91881
@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Edit current URL with <kbd>e</kbd> (#87)
|
||||
- If `emoji_favicons` is enabled, new bookmarks will have the domain's favicon prepended (#69, #90)
|
||||
- The `BROWSER` env var is now also checked when opening web links on Unix (#93)
|
||||
- More accurate error messages based on server response code
|
||||
|
||||
### Changed
|
||||
- Disabling the `color` config setting also disables ANSI colors in pages (#79, #86)
|
||||
|
@ -478,8 +478,8 @@ func handleURL(t *tab, u string, numRedirects int) (string, bool) {
|
||||
// Could be a non 20 (or 21) status code, or a different kind of document
|
||||
|
||||
// Handle each status code
|
||||
switch gemini.SimplifyStatus(res.Status) {
|
||||
case 10:
|
||||
switch res.Status {
|
||||
case 10, 11:
|
||||
userInput, ok := Input(res.Meta)
|
||||
if ok {
|
||||
// Make another request with the query string added
|
||||
@ -492,7 +492,7 @@ func handleURL(t *tab, u string, numRedirects int) (string, bool) {
|
||||
return ret(handleURL(t, parsed.String(), 0))
|
||||
}
|
||||
return ret("", false)
|
||||
case 30:
|
||||
case 30, 31:
|
||||
parsedMeta, err := url.Parse(res.Meta)
|
||||
if err != nil {
|
||||
Error("Redirect Error", "Invalid URL: "+err.Error())
|
||||
@ -520,13 +520,44 @@ func handleURL(t *tab, u string, numRedirects int) (string, bool) {
|
||||
case 40:
|
||||
Error("Temporary Failure", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 41:
|
||||
Error("Server Unavailable", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 42:
|
||||
Error("CGI Error", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 43:
|
||||
Error("Proxy Failure", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 44:
|
||||
Error("Slow Down", "You should wait "+cview.Escape(res.Meta)+" seconds before making another request.")
|
||||
return ret("", false)
|
||||
case 50:
|
||||
Error("Permanent Failure", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 51:
|
||||
Error("Not Found", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 52:
|
||||
Error("Gone", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 53:
|
||||
Error("Proxy Request Refused", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 59:
|
||||
Error("Bad Request", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 60:
|
||||
Info("The server requested a certificate. Cert handling is coming to Amfora soon!")
|
||||
Error("Client Certificate Required", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 61:
|
||||
Error("Certificate Not Authorised", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
case 62:
|
||||
Error("Certificate Not Valid", cview.Escape(res.Meta))
|
||||
return ret("", false)
|
||||
}
|
||||
|
||||
// Status code 20, but not a document that can be displayed
|
||||
go dlChoice("That file could not be displayed. What would you like to do?", u, res)
|
||||
return ret("", false)
|
||||
|
Loading…
x
Reference in New Issue
Block a user