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
|
req.Certificate = &cert
|
||||||
return c.do(req, via)
|
return c.do(req, via)
|
||||||
}
|
}
|
||||||
return resp, ErrCertificateRequired
|
return resp, nil
|
||||||
|
|
||||||
case resp.Status.Class() == StatusClassInput:
|
case resp.Status.Class() == StatusClassInput:
|
||||||
if c.GetInput != nil {
|
if c.GetInput != nil {
|
||||||
@ -139,7 +139,7 @@ func (c *Client) do(req *Request, via []*Request) (*Response, error) {
|
|||||||
return c.do(req, via)
|
return c.do(req, via)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return resp, ErrInputRequired
|
return resp, nil
|
||||||
|
|
||||||
case resp.Status.Class() == StatusClassRedirect:
|
case resp.Status.Class() == StatusClassRedirect:
|
||||||
if via == nil {
|
if via == nil {
|
||||||
@ -151,12 +151,13 @@ func (c *Client) do(req *Request, via []*Request) (*Response, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return resp, err
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
target = req.URL.ResolveReference(target)
|
target = req.URL.ResolveReference(target)
|
||||||
redirect, err := NewRequestFromURL(target)
|
if target.Scheme != "" && target.Scheme != "gemini" {
|
||||||
if err != nil {
|
return resp, nil
|
||||||
return resp, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
redirect := NewRequestFromURL(target)
|
||||||
if c.CheckRedirect != nil {
|
if c.CheckRedirect != nil {
|
||||||
if err := c.CheckRedirect(redirect, via); err != nil {
|
if err := c.CheckRedirect(redirect, via); err != nil {
|
||||||
return resp, err
|
return resp, err
|
||||||
|
4
fs.go
4
fs.go
@ -96,9 +96,9 @@ func openFile(p string) (File, error) {
|
|||||||
if stat.Mode().IsRegular() {
|
if stat.Mode().IsRegular() {
|
||||||
return f, nil
|
return f, nil
|
||||||
}
|
}
|
||||||
return nil, ErrNotAFile
|
return nil, os.ErrNotExist
|
||||||
} else if !stat.Mode().IsRegular() {
|
} else if !stat.Mode().IsRegular() {
|
||||||
return nil, ErrNotAFile
|
return nil, os.ErrNotExist
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return f, nil
|
return f, nil
|
||||||
|
@ -14,12 +14,8 @@ var (
|
|||||||
ErrCertificateExpired = errors.New("gemini: certificate expired")
|
ErrCertificateExpired = errors.New("gemini: certificate expired")
|
||||||
ErrCertificateNotFound = errors.New("gemini: certificate not found")
|
ErrCertificateNotFound = errors.New("gemini: certificate not found")
|
||||||
ErrCertificateNotTrusted = errors.New("gemini: certificate not trusted")
|
ErrCertificateNotTrusted = errors.New("gemini: certificate not trusted")
|
||||||
ErrCertificateRequired = errors.New("gemini: certificate required")
|
ErrBodyNotAllowed = errors.New("gemini: response body not allowed")
|
||||||
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")
|
|
||||||
ErrTooManyRedirects = errors.New("gemini: too many redirects")
|
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.
|
// 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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return NewRequestFromURL(u)
|
return NewRequestFromURL(u), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewRequestFromURL returns a new request for the given URL.
|
// NewRequestFromURL returns a new request for the given URL.
|
||||||
// The host is inferred from the URL.
|
// The host is inferred from the URL.
|
||||||
func NewRequestFromURL(url *url.URL) (*Request, error) {
|
func NewRequestFromURL(url *url.URL) *Request {
|
||||||
if url.Scheme != "" && url.Scheme != "gemini" {
|
|
||||||
return nil, ErrNotAGeminiURL
|
|
||||||
}
|
|
||||||
host := url.Host
|
host := url.Host
|
||||||
if url.Port() == "" {
|
if url.Port() == "" {
|
||||||
host += ":1965"
|
host += ":1965"
|
||||||
@ -57,7 +54,7 @@ func NewRequestFromURL(url *url.URL) (*Request, error) {
|
|||||||
return &Request{
|
return &Request{
|
||||||
URL: url,
|
URL: url,
|
||||||
Host: host,
|
Host: host,
|
||||||
}, nil
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// write writes the Gemini request to the provided buffered writer.
|
// write writes the Gemini request to the provided buffered writer.
|
||||||
|
Loading…
Reference in New Issue
Block a user