mirror of
https://github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin.git
synced 2026-09-02 20:28:50 +02:00
CIDRKeys masked the address byte by byte and formatted the result with string concatenation, while SetCIDR/DeleteCIDR format their keys with net.IPNet.String() via NormalizeCIDR. The two agreed only by coincidence: any divergence in formatting silently stops every range decision from matching, with no test covering the invariant. Mask with net.IP.Mask and format through net.IPNet.String() so both sides go through the same formatter. Output is byte for byte identical to the previous implementation (checked against a golden dump of both IPv4 and IPv6 keys, including ::ffff: forms). Dropping the inner byte loops also removes the only intrange violation in the tree, so the linter exclusion added for them is no longer needed, and the redundant import alias on pkg/ip goes away with it.
89 lines
2.2 KiB
YAML
89 lines
2.2 KiB
YAML
run:
|
|
timeout: 3m
|
|
|
|
linters-settings:
|
|
govet:
|
|
enable-all: true
|
|
disable:
|
|
- fieldalignment
|
|
gocyclo:
|
|
min-complexity: 20
|
|
goconst:
|
|
min-len: 5
|
|
min-occurrences: 4
|
|
misspell:
|
|
locale: US
|
|
funlen:
|
|
lines: -1
|
|
statements: 60
|
|
godox:
|
|
keywords:
|
|
- FIXME
|
|
gofumpt:
|
|
extra-rules: true
|
|
depguard:
|
|
rules:
|
|
Main:
|
|
files:
|
|
- $all
|
|
- "!$test"
|
|
allow:
|
|
- $gostd
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/logger
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/ip
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/configuration
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/cache
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/captcha
|
|
- github.com/leprosus/golang-ttl-map
|
|
- github.com/maxlerebourg/simpleredis
|
|
Test:
|
|
files:
|
|
- $test
|
|
allow:
|
|
- $gostd
|
|
- github.com/maxlerebourg/simpleredis
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/logger
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/ip
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/configuration
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/cache
|
|
- github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/pkg/captcha
|
|
|
|
linters:
|
|
enable-all: true
|
|
disable:
|
|
- sqlclosecheck # not relevant (SQL)
|
|
- rowserrcheck # not relevant (SQL)
|
|
- cyclop # duplicate of gocyclo
|
|
- bodyclose # Too many false positives: https://github.com/timakin/bodyclose/issues/30
|
|
- dupl
|
|
- testpackage
|
|
- tparallel
|
|
- paralleltest
|
|
- nlreturn
|
|
- wsl
|
|
- exhaustive
|
|
- exhaustruct
|
|
- err113
|
|
- wrapcheck
|
|
- noctx
|
|
- lll
|
|
- forbidigo
|
|
- varnamelen
|
|
- wastedassign # is disabled because of generics
|
|
- gofumpt
|
|
- gci
|
|
- mnd
|
|
- exportloopref
|
|
- contextcheck
|
|
issues:
|
|
exclude-use-default: false
|
|
max-same-issues: 0
|
|
exclude:
|
|
- "G402: TLS InsecureSkipVerify may be true."
|
|
exclude-rules:
|
|
- path: (.+)_test.go
|
|
linters:
|
|
- goconst
|
|
- funlen
|
|
- godot
|