diff options
| author | Yulian Kuncheff <670212+daegalus@users.noreply.github.com> | 2025-03-25 15:02:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-25 10:02:05 -0400 |
| commit | f29a200f09ca3f720266164421304ed28de57dc6 (patch) | |
| tree | 3b6008abb87b6f7c1476d2a56a0834602bede960 /lib/policy | |
| parent | 18cd8a66a254989c7cb0c90ea58df43b1883289f (diff) | |
| download | anubis-f29a200f09ca3f720266164421304ed28de57dc6.tar.xz anubis-f29a200f09ca3f720266164421304ed28de57dc6.zip | |
Linting and staticcheck fixes. (#101)
* Fix linting and staticcheck issues
* Add changelog update
* Remove SetNext
Diffstat (limited to 'lib/policy')
| -rw-r--r-- | lib/policy/config/config.go | 4 | ||||
| -rw-r--r-- | lib/policy/policy.go | 15 |
2 files changed, 9 insertions, 10 deletions
diff --git a/lib/policy/config/config.go b/lib/policy/config/config.go index 67eddbf..b23af70 100644 --- a/lib/policy/config/config.go +++ b/lib/policy/config/config.go @@ -51,7 +51,7 @@ func (b BotConfig) Valid() error { errs = append(errs, ErrBotMustHaveName) } - if b.UserAgentRegex == nil && b.PathRegex == nil && (b.RemoteAddr == nil || len(b.RemoteAddr) == 0) { + if b.UserAgentRegex == nil && b.PathRegex == nil && len(b.RemoteAddr) == 0 { errs = append(errs, ErrBotMustHaveUserAgentOrPath) } @@ -71,7 +71,7 @@ func (b BotConfig) Valid() error { } } - if b.RemoteAddr != nil && len(b.RemoteAddr) > 0 { + if len(b.RemoteAddr) > 0 { for _, cidr := range b.RemoteAddr { if _, _, err := net.ParseCIDR(cidr); err != nil { errs = append(errs, ErrInvalidCIDR, err) diff --git a/lib/policy/policy.go b/lib/policy/policy.go index 51b23ff..3f80fa3 100644 --- a/lib/policy/policy.go +++ b/lib/policy/policy.go @@ -46,24 +46,23 @@ func ParseConfig(fin io.Reader, fname string, defaultDifficulty int) (*ParsedCon return nil, err } - var err error + var validationErrs []error result := NewParsedConfig(c) result.DefaultDifficulty = defaultDifficulty for _, b := range c.Bots { if berr := b.Valid(); berr != nil { - err = errors.Join(err, berr) + validationErrs = append(validationErrs, berr) continue } - var botParseErr error parsedBot := Bot{ Name: b.Name, Action: b.Action, } - if b.RemoteAddr != nil && len(b.RemoteAddr) > 0 { + if len(b.RemoteAddr) > 0 { parsedBot.Ranger = cidranger.NewPCTrieRanger() for _, cidr := range b.RemoteAddr { @@ -79,7 +78,7 @@ func ParseConfig(fin io.Reader, fname string, defaultDifficulty int) (*ParsedCon if b.UserAgentRegex != nil { userAgent, err := regexp.Compile(*b.UserAgentRegex) if err != nil { - botParseErr = errors.Join(botParseErr, fmt.Errorf("while compiling user agent regexp: %w", err)) + validationErrs = append(validationErrs, fmt.Errorf("while compiling user agent regexp: %w", err)) continue } else { parsedBot.UserAgent = userAgent @@ -89,7 +88,7 @@ func ParseConfig(fin io.Reader, fname string, defaultDifficulty int) (*ParsedCon if b.PathRegex != nil { path, err := regexp.Compile(*b.PathRegex) if err != nil { - botParseErr = errors.Join(botParseErr, fmt.Errorf("while compiling path regexp: %w", err)) + validationErrs = append(validationErrs, fmt.Errorf("while compiling path regexp: %w", err)) continue } else { parsedBot.Path = path @@ -112,8 +111,8 @@ func ParseConfig(fin io.Reader, fname string, defaultDifficulty int) (*ParsedCon result.Bots = append(result.Bots, parsedBot) } - if err != nil { - return nil, fmt.Errorf("errors validating policy config JSON %s: %w", fname, err) + if len(validationErrs) > 0 { + return nil, fmt.Errorf("errors validating policy config JSON %s: %w", fname, errors.Join(validationErrs...)) } result.DNSBL = c.DNSBL |
