From ecbbf774989d63b9b5d21a607bc485f3649e8640 Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Fri, 25 Jul 2025 18:44:27 +0000 Subject: [PATCH] refactor: move ErrMisconfiguration to top level Signed-off-by: Xe Iaso --- errors.go | 7 +++++++ lib/policy/checker.go | 15 ++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 errors.go diff --git a/errors.go b/errors.go new file mode 100644 index 00000000..1921c533 --- /dev/null +++ b/errors.go @@ -0,0 +1,7 @@ +package anubis + +import "errors" + +var ( + ErrMisconfiguration = errors.New("[unexpected] policy: administrator misconfiguration") +) diff --git a/lib/policy/checker.go b/lib/policy/checker.go index 5753e144..8c6119f1 100644 --- a/lib/policy/checker.go +++ b/lib/policy/checker.go @@ -8,15 +8,12 @@ import ( "regexp" "strings" + "github.com/TecharoHQ/anubis" "github.com/TecharoHQ/anubis/internal" "github.com/TecharoHQ/anubis/lib/policy/checker" "github.com/gaissmai/bart" ) -var ( - ErrMisconfiguration = errors.New("[unexpected] policy: administrator misconfiguration") -) - type RemoteAddrChecker struct { prefixTable *bart.Lite hash string @@ -28,7 +25,7 @@ func NewRemoteAddrChecker(cidrs []string) (checker.Impl, error) { for _, cidr := range cidrs { prefix, err := netip.ParsePrefix(cidr) if err != nil { - return nil, fmt.Errorf("%w: range %s not parsing: %w", ErrMisconfiguration, cidr, err) + return nil, fmt.Errorf("%w: range %s not parsing: %w", anubis.ErrMisconfiguration, cidr, err) } table.Insert(prefix) @@ -43,12 +40,12 @@ func NewRemoteAddrChecker(cidrs []string) (checker.Impl, error) { func (rac *RemoteAddrChecker) Check(r *http.Request) (bool, error) { host := r.Header.Get("X-Real-Ip") if host == "" { - return false, fmt.Errorf("%w: header X-Real-Ip is not set", ErrMisconfiguration) + return false, fmt.Errorf("%w: header X-Real-Ip is not set", anubis.ErrMisconfiguration) } addr, err := netip.ParseAddr(host) if err != nil { - return false, fmt.Errorf("%w: %s is not an IP address: %w", ErrMisconfiguration, host, err) + return false, fmt.Errorf("%w: %s is not an IP address: %w", anubis.ErrMisconfiguration, host, err) } return rac.prefixTable.Contains(addr), nil @@ -71,7 +68,7 @@ func NewUserAgentChecker(rexStr string) (checker.Impl, error) { func NewHeaderMatchesChecker(header, rexStr string) (checker.Impl, error) { rex, err := regexp.Compile(strings.TrimSpace(rexStr)) if err != nil { - return nil, fmt.Errorf("%w: regex %s failed parse: %w", ErrMisconfiguration, rexStr, err) + return nil, fmt.Errorf("%w: regex %s failed parse: %w", anubis.ErrMisconfiguration, rexStr, err) } return &HeaderMatchesChecker{strings.TrimSpace(header), rex, internal.FastHash(header + ": " + rexStr)}, nil } @@ -96,7 +93,7 @@ type PathChecker struct { func NewPathChecker(rexStr string) (checker.Impl, error) { rex, err := regexp.Compile(strings.TrimSpace(rexStr)) if err != nil { - return nil, fmt.Errorf("%w: regex %s failed parse: %w", ErrMisconfiguration, rexStr, err) + return nil, fmt.Errorf("%w: regex %s failed parse: %w", anubis.ErrMisconfiguration, rexStr, err) } return &PathChecker{rex, internal.FastHash(rexStr)}, nil }