aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYulian Kuncheff <670212+daegalus@users.noreply.github.com>2025-03-25 15:02:05 +0100
committerGitHub <noreply@github.com>2025-03-25 10:02:05 -0400
commitf29a200f09ca3f720266164421304ed28de57dc6 (patch)
tree3b6008abb87b6f7c1476d2a56a0834602bede960
parent18cd8a66a254989c7cb0c90ea58df43b1883289f (diff)
downloadanubis-f29a200f09ca3f720266164421304ed28de57dc6.tar.xz
anubis-f29a200f09ca3f720266164421304ed28de57dc6.zip
Linting and staticcheck fixes. (#101)
* Fix linting and staticcheck issues * Add changelog update * Remove SetNext
-rw-r--r--decaymap/decaymap.go2
-rw-r--r--docs/docs/CHANGELOG.md1
-rw-r--r--internal/test/playwright_test.go4
-rw-r--r--lib/anubis.go4
-rw-r--r--lib/policy/config/config.go4
-rw-r--r--lib/policy/policy.go15
6 files changed, 13 insertions, 17 deletions
diff --git a/decaymap/decaymap.go b/decaymap/decaymap.go
index edcbd1a..7498bb5 100644
--- a/decaymap/decaymap.go
+++ b/decaymap/decaymap.go
@@ -64,7 +64,7 @@ func (m *Impl[K, V]) Get(key K) (V, bool) {
m.lock.Lock()
// Since previously reading m.data[key], the value may have been updated.
// Delete the entry only if the expiry time is still the same.
- if m.data[key].expiry == value.expiry {
+ if m.data[key].expiry.Equal(value.expiry) {
delete(m.data, key)
}
m.lock.Unlock()
diff --git a/docs/docs/CHANGELOG.md b/docs/docs/CHANGELOG.md
index 10ddf29..86e3c78 100644
--- a/docs/docs/CHANGELOG.md
+++ b/docs/docs/CHANGELOG.md
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Refactor & Split up Anubis into cmd and lib.go
- Fixed bot check to only apply if address range matches
- Fix default difficulty setting that was broken in a refactor
+- Linting fixes
## v1.14.2
diff --git a/internal/test/playwright_test.go b/internal/test/playwright_test.go
index b8b6cac..e41a10a 100644
--- a/internal/test/playwright_test.go
+++ b/internal/test/playwright_test.go
@@ -153,7 +153,7 @@ func startPlaywright(t *testing.T) {
daemonize(t, fmt.Sprintf("npx --yes playwright@%s run-server --port %d", playwrightVersion, *playwrightPort))
- for true {
+ for {
if _, err := http.Get(fmt.Sprintf("http://localhost:%d", *playwrightPort)); err != nil {
time.Sleep(500 * time.Millisecond)
continue
@@ -355,7 +355,7 @@ func pwTimeout(tc testCase, deadline time.Time) *float64 {
max = *playwrightMaxHardTime
}
- d := deadline.Sub(time.Now())
+ d := time.Until(deadline)
if d <= 0 || d > max {
return playwright.Float(float64(max.Milliseconds()))
}
diff --git a/lib/anubis.go b/lib/anubis.go
index 43993bb..d56c608 100644
--- a/lib/anubis.go
+++ b/lib/anubis.go
@@ -98,10 +98,6 @@ func New(opts Options) (*Server, error) {
return nil, fmt.Errorf("failed to generate ed25519 key: %w", err)
}
- if err != nil {
- return nil, err // parseConfig sets a fancy error for us
- }
-
result := &Server{
next: opts.Next,
priv: priv,
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