Add DB scan error
This commit is contained in:
@@ -29,7 +29,7 @@ func NewErrGeminiStatusCode(code int, header string) error {
|
|||||||
case code >= 60 && code < 70:
|
case code >= 60 && code < 70:
|
||||||
msg = "TLS error"
|
msg = "TLS error"
|
||||||
default:
|
default:
|
||||||
msg = "unexpected status code"
|
msg = "unexpected Status code"
|
||||||
}
|
}
|
||||||
return &GeminiError{
|
return &GeminiError{
|
||||||
Msg: msg,
|
Msg: msg,
|
||||||
@@ -51,6 +51,8 @@ var (
|
|||||||
ErrUTF8Parse = errors.New("UTF-8 parse error")
|
ErrUTF8Parse = errors.New("UTF-8 parse error")
|
||||||
ErrTextParse = errors.New("text parse error")
|
ErrTextParse = errors.New("text parse error")
|
||||||
|
|
||||||
|
ErrBlacklistMatches = errors.New("url matches blacklist")
|
||||||
|
|
||||||
ErrNetwork = errors.New("network error")
|
ErrNetwork = errors.New("network error")
|
||||||
ErrNetworkDNS = errors.New("network DNS error")
|
ErrNetworkDNS = errors.New("network DNS error")
|
||||||
ErrNetworkTLS = errors.New("network TLS error")
|
ErrNetworkTLS = errors.New("network TLS error")
|
||||||
@@ -59,6 +61,7 @@ var (
|
|||||||
ErrNetworkResponseSizeExceededMax = errors.New("network error - response size exceeded maximum size")
|
ErrNetworkResponseSizeExceededMax = errors.New("network error - response size exceeded maximum size")
|
||||||
|
|
||||||
ErrDatabase = errors.New("database error")
|
ErrDatabase = errors.New("database error")
|
||||||
|
ErrDatabaseScan = errors.New("database scan error")
|
||||||
)
|
)
|
||||||
|
|
||||||
// We could have used a map for speed, but
|
// We could have used a map for speed, but
|
||||||
@@ -75,6 +78,8 @@ var knownErrors = []error{ //nolint:gochecknoglobals
|
|||||||
ErrGeminiResponseHeader,
|
ErrGeminiResponseHeader,
|
||||||
ErrGeminiRedirect,
|
ErrGeminiRedirect,
|
||||||
|
|
||||||
|
ErrBlacklistMatches,
|
||||||
|
|
||||||
ErrURLParse,
|
ErrURLParse,
|
||||||
ErrURLDecode,
|
ErrURLDecode,
|
||||||
ErrUTF8Parse,
|
ErrUTF8Parse,
|
||||||
@@ -88,6 +93,7 @@ var knownErrors = []error{ //nolint:gochecknoglobals
|
|||||||
ErrNetworkResponseSizeExceededMax,
|
ErrNetworkResponseSizeExceededMax,
|
||||||
|
|
||||||
ErrDatabase,
|
ErrDatabase,
|
||||||
|
ErrDatabaseScan,
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsKnownError(err error) bool {
|
func IsKnownError(err error) bool {
|
||||||
|
|||||||
@@ -1,24 +1,25 @@
|
|||||||
package common
|
package common_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"gemini-grc/common"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestErrGemini(t *testing.T) {
|
func TestErrGemini(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
err := NewErrGeminiStatusCode(50, "50 server error")
|
err := common.NewErrGeminiStatusCode(50, "50 server error")
|
||||||
if !errors.As(err, new(*GeminiError)) {
|
if !errors.As(err, new(*common.GeminiError)) {
|
||||||
t.Errorf("TestErrGemini fail")
|
t.Errorf("TestErrGemini fail")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestErrGeminiWrapped(t *testing.T) {
|
func TestErrGeminiWrapped(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
err := NewErrGeminiStatusCode(50, "50 server error")
|
err := common.NewErrGeminiStatusCode(50, "50 server error")
|
||||||
errWrapped := fmt.Errorf("%w wrapped", err)
|
errWrapped := fmt.Errorf("%w wrapped", err)
|
||||||
if !errors.As(errWrapped, new(*GeminiError)) {
|
if !errors.As(errWrapped, new(*common.GeminiError)) {
|
||||||
t.Errorf("TestErrGeminiWrapped fail")
|
t.Errorf("TestErrGeminiWrapped fail")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user