Add DB scan error

This commit is contained in:
2025-01-16 10:02:54 +02:00
parent 766ee26f68
commit 998b0e74ec
2 changed files with 14 additions and 7 deletions

View File

@@ -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 {

View File

@@ -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")
} }
} }