Remove some unnecessary errors
This commit is contained in:
parent
95716296b4
commit
cec1f118fb
11
client.go
11
client.go
@ -128,7 +128,7 @@ func (c *Client) do(req *Request, via []*Request) (*Response, error) {
|
||||
req.Certificate = &cert
|
||||
return c.do(req, via)
|
||||
}
|
||||
return resp, ErrCertificateRequired
|
||||
return resp, nil
|
||||
|
||||
case resp.Status.Class() == StatusClassInput:
|
||||
if c.GetInput != nil {
|
||||
@ -139,7 +139,7 @@ func (c *Client) do(req *Request, via []*Request) (*Response, error) {
|
||||
return c.do(req, via)
|
||||
}
|
||||
}
|
||||
return resp, ErrInputRequired
|
||||
return resp, nil
|
||||
|
||||
case resp.Status.Class() == StatusClassRedirect:
|
||||
if via == nil {
|
||||
@ -151,12 +151,13 @@ func (c *Client) do(req *Request, via []*Request) (*Response, error) {
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
|
||||
target = req.URL.ResolveReference(target)
|
||||
redirect, err := NewRequestFromURL(target)
|
||||
if err != nil {
|
||||
return resp, err
|
||||
if target.Scheme != "" && target.Scheme != "gemini" {
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
redirect := NewRequestFromURL(target)
|
||||
if c.CheckRedirect != nil {
|
||||
if err := c.CheckRedirect(redirect, via); err != nil {
|
||||
return resp, err
|
||||
|
4
fs.go
4
fs.go
@ -96,9 +96,9 @@ func openFile(p string) (File, error) {
|
||||
if stat.Mode().IsRegular() {
|
||||
return f, nil
|
||||
}
|
||||
return nil, ErrNotAFile
|
||||
return nil, os.ErrNotExist
|
||||
} else if !stat.Mode().IsRegular() {
|
||||
return nil, ErrNotAFile
|
||||
return nil, os.ErrNotExist
|
||||
}
|
||||
}
|
||||
return f, nil
|
||||
|
@ -14,12 +14,8 @@ var (
|
||||
ErrCertificateExpired = errors.New("gemini: certificate expired")
|
||||
ErrCertificateNotFound = errors.New("gemini: certificate not found")
|
||||
ErrCertificateNotTrusted = errors.New("gemini: certificate not trusted")
|
||||
ErrCertificateRequired = errors.New("gemini: certificate required")
|
||||
ErrNotAFile = errors.New("gemini: not a file")
|
||||
ErrNotAGeminiURL = errors.New("gemini: not a Gemini URL")
|
||||
ErrBodyNotAllowed = errors.New("gemini: response status code does not allow for body")
|
||||
ErrBodyNotAllowed = errors.New("gemini: response body not allowed")
|
||||
ErrTooManyRedirects = errors.New("gemini: too many redirects")
|
||||
ErrInputRequired = errors.New("gemini: input required")
|
||||
)
|
||||
|
||||
// defaultClient is the default client. It is used by Get and Do.
|
||||
|
@ -41,15 +41,12 @@ func NewRequest(rawurl string) (*Request, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return NewRequestFromURL(u)
|
||||
return NewRequestFromURL(u), nil
|
||||
}
|
||||
|
||||
// NewRequestFromURL returns a new request for the given URL.
|
||||
// The host is inferred from the URL.
|
||||
func NewRequestFromURL(url *url.URL) (*Request, error) {
|
||||
if url.Scheme != "" && url.Scheme != "gemini" {
|
||||
return nil, ErrNotAGeminiURL
|
||||
}
|
||||
func NewRequestFromURL(url *url.URL) *Request {
|
||||
host := url.Host
|
||||
if url.Port() == "" {
|
||||
host += ":1965"
|
||||
@ -57,7 +54,7 @@ func NewRequestFromURL(url *url.URL) (*Request, error) {
|
||||
return &Request{
|
||||
URL: url,
|
||||
Host: host,
|
||||
}, nil
|
||||
}
|
||||
}
|
||||
|
||||
// write writes the Gemini request to the provided buffered writer.
|
||||
|
Loading…
Reference in New Issue
Block a user