diff --git a/common/errors.go b/common/errors.go index 243e2fa..641fe78 100644 --- a/common/errors.go +++ b/common/errors.go @@ -29,7 +29,7 @@ func NewErrGeminiStatusCode(code int, header string) error { case code >= 60 && code < 70: msg = "TLS error" default: - msg = "unexpected status code" + msg = "unexpected Status code" } return &GeminiError{ Msg: msg, @@ -51,6 +51,8 @@ var ( ErrUTF8Parse = errors.New("UTF-8 parse error") ErrTextParse = errors.New("text parse error") + ErrBlacklistMatches = errors.New("url matches blacklist") + ErrNetwork = errors.New("network error") ErrNetworkDNS = errors.New("network DNS error") ErrNetworkTLS = errors.New("network TLS error") @@ -58,7 +60,8 @@ var ( ErrNetworkCannotWrite = errors.New("network error - cannot write") 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 @@ -75,6 +78,8 @@ var knownErrors = []error{ //nolint:gochecknoglobals ErrGeminiResponseHeader, ErrGeminiRedirect, + ErrBlacklistMatches, + ErrURLParse, ErrURLDecode, ErrUTF8Parse, @@ -88,6 +93,7 @@ var knownErrors = []error{ //nolint:gochecknoglobals ErrNetworkResponseSizeExceededMax, ErrDatabase, + ErrDatabaseScan, } func IsKnownError(err error) bool { diff --git a/common/errors_test.go b/common/errors_test.go index c756cb9..ae9ac00 100644 --- a/common/errors_test.go +++ b/common/errors_test.go @@ -1,24 +1,25 @@ -package common +package common_test import ( "errors" "fmt" + "gemini-grc/common" "testing" ) func TestErrGemini(t *testing.T) { t.Parallel() - err := NewErrGeminiStatusCode(50, "50 server error") - if !errors.As(err, new(*GeminiError)) { + err := common.NewErrGeminiStatusCode(50, "50 server error") + if !errors.As(err, new(*common.GeminiError)) { t.Errorf("TestErrGemini fail") } } func TestErrGeminiWrapped(t *testing.T) { t.Parallel() - err := NewErrGeminiStatusCode(50, "50 server error") + err := common.NewErrGeminiStatusCode(50, "50 server error") errWrapped := fmt.Errorf("%w wrapped", err) - if !errors.As(errWrapped, new(*GeminiError)) { + if !errors.As(errWrapped, new(*common.GeminiError)) { t.Errorf("TestErrGeminiWrapped fail") } }