diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 0ff81868f..a8fc944bf 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -20,6 +20,4 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8.0.0 with: - version: v2.5.0 - - name: modernize - run: go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@2e31135b736b96cd609904370c71563ce5447826 -diff -test ./... # v0.20.0 + version: v2.6.0 diff --git a/.golangci.yml b/.golangci.yml index 3dba51c3c..232a58f04 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -14,6 +14,7 @@ linters: - govet - ineffassign - intrange + - modernize - nakedret - nolintlint - perfsprint @@ -42,6 +43,9 @@ linters: govet: enable: - nilness + modernize: + disable: + - reflecttypefor perfsprint: error-format: false revive: diff --git a/plugin/rewrite/cname_target.go b/plugin/rewrite/cname_target.go index 561c53491..e87db72cc 100644 --- a/plugin/rewrite/cname_target.go +++ b/plugin/rewrite/cname_target.go @@ -44,8 +44,8 @@ func (r *cnameTargetRule) getFromAndToTarget(inputCName string) (from string, to return inputCName, r.paramToTarget + after } case SuffixMatch: - if strings.HasSuffix(inputCName, r.paramFromTarget) { - return inputCName, strings.TrimSuffix(inputCName, r.paramFromTarget) + r.paramToTarget + if before, ok := strings.CutSuffix(inputCName, r.paramFromTarget); ok { + return inputCName, before + r.paramToTarget } case SubstringMatch: if strings.Contains(inputCName, r.paramFromTarget) { diff --git a/plugin/rewrite/name.go b/plugin/rewrite/name.go index 42c0054a5..65d80d0f0 100644 --- a/plugin/rewrite/name.go +++ b/plugin/rewrite/name.go @@ -81,8 +81,8 @@ func newSuffixStringRewriter(orig, replacement string) stringRewriter { } func (r *suffixStringRewriter) rewriteString(src string) string { - if strings.HasSuffix(src, r.suffix) { - return strings.TrimSuffix(src, r.suffix) + r.replacement + if before, ok := strings.CutSuffix(src, r.suffix); ok { + return before + r.replacement } return src } @@ -234,8 +234,8 @@ func newSuffixNameRule(nextAction string, auto bool, suffix, replacement string, } func (rule *suffixNameRule) Rewrite(ctx context.Context, state request.Request) (ResponseRules, Result) { - if strings.HasSuffix(state.Name(), rule.suffix) { - state.Req.Question[0].Name = strings.TrimSuffix(state.Name(), rule.suffix) + rule.replacement + if before, ok := strings.CutSuffix(state.Name(), rule.suffix); ok { + state.Req.Question[0].Name = before + rule.replacement return rule.responseRuleFor(state) } return nil, RewriteIgnored