4507 Commits

Author SHA1 Message Date
rusttech
1fd4ba2e5f fix: fix slice init length (#6901)
Signed-off-by: rusttech <gopher@before.tech>
2025-12-09 18:17:07 -08:00
cangming
cad961f75f plugin/errors: add show_first option to consolidate (#7702) (#7703)
Add optional show_first flag to consolidate directive that logs
the first error immediately and then consolidates subsequent errors.

When show_first is enabled:
- The first matching error is logged immediately with full details
  (rcode, domain, type, error message) using the configured log level
- Subsequent matching errors are consolidated during the period
- At period end:
  - If only one error occurred, no summary is printed (already logged)
  - If multiple errors occurred, summary shows the total count

Syntax:
  consolidate DURATION REGEXP [LEVEL] [show_first]

Example with 3 errors:
  [WARNING] 2 example.org. A: read udp 10.0.0.1:53->8.8.8.8:53: i/o timeout
  [WARNING] 3 errors like '^read udp .* i/o timeout$' occurred in last 30s

Example with 1 error:
  [WARNING] 2 example.org. A: read udp 10.0.0.1:53->8.8.8.8:53: i/o timeout

Implementation details:
- Add showFirst bool to pattern struct
- Rename inc() to consolidateError(), return false for showFirst case
- Use function pointer in ServeDNS to unify log calls with proper level
- Simplify logPattern() with single condition (cnt > 1 || !showFirst)
- Refactor parseLogLevel() to parseOptionalParams() with map-based dispatch
- Validate parameter order: log level must come before show_first
- Update README.md with show_first documentation and examples
- Add comprehensive test cases for show_first functionality

Signed-off-by: cangming <cangming@cangming.app>
2025-12-09 18:15:49 -08:00
Yong Tang
0233f3e7c6 Add deprecation notice for geoip plugin's behavior of 0 (#7740)
This PR add a deprecation noticed for geoip plugin's upcoming
behavior change of 0. Please see PR #7732 for details.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
v1.13.2
2025-12-09 13:44:03 +02:00
dependabot[bot]
56aa6dcd3d build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7752) 2025-12-08 17:30:06 -08:00
dependabot[bot]
258088c100 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7749) 2025-12-08 14:42:58 -08:00
dependabot[bot]
f663db25a7 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7754) 2025-12-08 12:54:01 -08:00
Eric Case
8f48704abe plugin/geoip: Upgrade to geoip2-golang v2 (#7732)
Signed-off-by: Eric Case <eric.case@gmail.com>
2025-12-08 20:19:47 +00:00
dependabot[bot]
2a96ac10fd build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7750) 2025-12-08 10:06:14 -08:00
dependabot[bot]
18e5b24867 build(deps): bump google.golang.org/api from 0.256.0 to 0.257.0 (#7751) 2025-12-08 10:05:59 -08:00
dependabot[bot]
01c4d36502 build(deps): bump actions/checkout from 6.0.0 to 6.0.1 (#7741) 2025-12-08 07:43:14 -08:00
dependabot[bot]
8dad281ef5 build(deps): bump github.com/quic-go/quic-go from 0.57.0 to 0.57.1 (#7748) 2025-12-08 07:42:52 -08:00
dependabot[bot]
9a217cd31f build(deps): bump golang.org/x/sys from 0.38.0 to 0.39.0 (#7747) 2025-12-08 07:42:42 -08:00
dependabot[bot]
381bda5b06 build(deps): bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds (#7746) 2025-12-08 07:42:30 -08:00
dependabot[bot]
7b752b7d59 build(deps): bump softprops/action-gh-release from 2.4.2 to 2.5.0 (#7742) 2025-12-08 15:18:26 +02:00
dependabot[bot]
3864521733 build(deps): bump github/codeql-action from 4.31.5 to 4.31.7 (#7743) 2025-12-08 15:18:03 +02:00
dependabot[bot]
5e3115e415 build(deps): bump actions/stale from 10.1.0 to 10.1.1 (#7744) 2025-12-08 15:17:41 +02:00
dependabot[bot]
2d869c878b build(deps): bump golangci/golangci-lint-action from 9.1.0 to 9.2.0 (#7745) 2025-12-08 15:17:26 +02:00
Yong Tang
38937cae56 Update release version to 1.13.2 (#7739) 2025-12-07 19:16:23 -08:00
Ville Vesilehto
e5cd796648 fix(auto): limit regex length (#7737)
A very large regex for the auto plugin in the Corefile could cause
CoreDNS to OOM. This change adds an artificial limit of 10k characters
for the regex pattern. Fixes OSS-Fuzz finding #466745384.

Signed-off-by: Ville Vesilehto <ville@vesilehto.fi>
2025-12-07 17:04:55 -08:00
Ville Vesilehto
3c8b846213 chore: bump Go version to 1.25.5 (#7736) 2025-12-03 17:13:12 -08:00
Tomas Boros
b472d3dbdb plugin/geoip - Support for ISO 3166-2 subdivisions. (#7728)
Metadata `geoip/subdivisions/code` now available if geoip plugin is used.

Signed-off-by: Tomas Boros <tomas.boros92@gmail.com>
2025-12-02 12:39:13 +00:00
Ville Vesilehto
c2894d47d6 feat(forward): add max connect attempts knob (#7722) 2025-12-01 18:06:52 -08:00
Ville Vesilehto
5cb2c5dbf5 chore(lint): enable reflecttypefor in modernize (#7729) 2025-11-30 21:30:49 -08:00
Eric Case
54dd258d57 plugin/geoip: Add ASN schema support (#7730)
Adds the ability to query ASN .mmdb databases, in addition to the existing City db functionality.

Signed-off-by: Eric Case <eric.case@gmail.com>
2025-11-30 16:36:33 +00:00
Andrey Smirnov
604e1675cf fix: kubernetes plugin logging (#7727)
The plugin dropped the actual error message from the log, so the log
becomes completely useless.

Before:

```
[ERROR] plugin/kubernetes: error Failed to watch
```

After:

```
[ERROR] plugin/kubernetes: Failed to watch: failed to list *v1.Namespace: Get "https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0": tls: failed to parse certificate from server: x509: SAN dNSName is malformed
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-27 19:46:04 +02:00
Olli Janatuinen
bdc03ed540 plugin/nomad: Support service filtering (#7724)
Signed-off-by: Olli Janatuinen <olli.janatuinen@gmail.com>
2025-11-25 21:05:14 +02:00
dependabot[bot]
3362885b56 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7714)
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.31.20 to 1.32.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.31.20...v1.32.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 22:31:57 +02:00
cangming
0ef4b55d8d plugin/pkg/uniq: fix data race with sync.RWMutex (#7707)
Add RWMutex to protect concurrent map access in Set, Unset, and ForEach methods.
Change New() to return *U pointer type for proper synchronization.

Signed-off-by: Cangming H <cangmingh@gmail.com>
2025-11-24 22:14:21 +02:00
dependabot[bot]
4f4f403567 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7715)
Bumps [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) from 1.39.13 to 1.40.1.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sfn/v1.39.13...service/s3/v1.40.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/secretsmanager
  dependency-version: 1.40.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 21:56:51 +02:00
dependabot[bot]
62bbe06138 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7719) 2025-11-24 10:48:51 -08:00
dependabot[bot]
6818b93f25 build(deps): bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds (#7716) 2025-11-24 09:52:18 -08:00
dependabot[bot]
25b43fd1ea build(deps): bump github.com/prometheus/common from 0.67.2 to 0.67.4 (#7718) 2025-11-24 09:15:45 -08:00
Ville Vesilehto
fe7335e634 perf(proxy): avoid unnecessary alloc in Yield (#7708) 2025-11-24 08:20:30 -08:00
dependabot[bot]
63eb9f70e5 build(deps): bump github.com/quic-go/quic-go from 0.56.0 to 0.57.0 (#7717) 2025-11-24 08:17:52 -08:00
dependabot[bot]
bc51a6e1ac build(deps): bump google.golang.org/grpc from 1.76.0 to 1.77.0 (#7720) 2025-11-24 08:17:39 -08:00
dependabot[bot]
390efdcad7 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7721) 2025-11-24 08:17:28 -08:00
dependabot[bot]
2cefcc08c4 build(deps): bump actions/checkout from 5.0.0 to 6.0.0 (#7711)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](08c6903cd8...1af3b93b68)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 17:36:59 +02:00
dependabot[bot]
a924d6b436 build(deps): bump github/codeql-action from 4.31.3 to 4.31.5 (#7710)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.3 to 4.31.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](014f16e7ab...fdbfb4d275)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.31.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 16:52:14 +02:00
dependabot[bot]
6958fb1233 build(deps): bump actions/setup-go from 6.0.0 to 6.1.0 (#7709) 2025-11-24 16:50:32 +02:00
dependabot[bot]
5fdf71a9ed build(deps): bump golangci/golangci-lint-action from 9.0.0 to 9.1.0 (#7712)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](0a35821d5c...e7fa5ac41e)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: 9.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 16:23:35 +02:00
Ville Vesilehto
dc381f79e5 fix(forward): prevent busy loop on connection err (#7704)
Fixes a bug in the forward plugin where an immediate connection
failure (e.g., TCP RST) could trigger an infinite busy loop. The
retry logic failed to increment the "fails" counter when a
connection error occurred, causing the loop condition to
remain permanently true. This patch fixes it and adds a
regression test.

Signed-off-by: Ville Vesilehto <ville@vesilehto.fi>
2025-11-22 16:36:15 -08:00
Charlie Vieth
de010910e2 plugin/cache: remove superfluous allocations in item.toMsg (#7700)
This commit removes superfluous allocations of the Answer, Ns, and Extra
slices when copying a cached a dns.Msg. The allocations are superfluous
because we immediately overwrite the newly copied slices with
filterRRSlice. It also updates filterRRSlice to pre-calculate the size
of the slice being copied into.

Benchmark results:

goos: darwin
goarch: arm64
pkg: github.com/coredns/coredns/plugin/cache
cpu: Apple M4 Pro
                 │ base.10.txt │             new.10.txt             │
                 │   sec/op    │   sec/op     vs base               │
CacheResponse-14   471.1n ± 0%   462.9n ± 2%  -1.74% (p=0.009 n=10)

                 │ base.10.txt │            new.10.txt             │
                 │    B/op     │    B/op     vs base               │
CacheResponse-14    672.0 ± 0%   656.0 ± 0%  -2.38% (p=0.000 n=10)

                 │ base.10.txt │            new.10.txt             │
                 │  allocs/op  │ allocs/op   vs base               │
CacheResponse-14    13.00 ± 0%   12.00 ± 0%  -7.69% (p=0.000 n=10)

Signed-off-by: Charlie Vieth <charlie.vieth@gmail.com>
2025-11-21 15:07:59 -08:00
Charlie Vieth
854048b0ab plugin/pkg/replacer: fix usage of sync.Pool to save an alloc (#7701) 2025-11-21 13:41:58 -08:00
Filippo125
d3e13fe05d Add basic support for DoH3 (#7677) 2025-11-21 06:01:59 +02:00
dependabot[bot]
5d64dfbdae build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 (#7698) 2025-11-20 02:10:57 -08:00
Charlie Vieth
2883b6340f plugin/rewrite: pre-compile CNMAE rewrite regexp (#7697)
This commit changes the CNAME rewrite rule to use a pre-compiled regexp
when the match type is RegexMatch instead of compiling it on-the-fly for
each request. This will also allow for invalid regexp patterns to be
identified during setup instead of causing a panic when the rule is
first invoked.

Signed-off-by: Charlie Vieth <charlie.vieth@gmail.com>
2025-11-19 22:27:29 -05:00
wenxuan70
e56971b253 fix: fix reload causing secondary plugin goroutine to leak. (#7694)
Signed-off-by: wenxuan70 <t736660416@gmail.com>
2025-11-19 17:17:57 -08:00
zhetaicheleba
9989ac5060 refactor: use reflect.TypeFor (#7696) 2025-11-19 09:40:18 -08:00
Timur Solodovnikov
614a364458 fix: correct spelling of MaximumDefaultTTL in cache and dnsutil packages (#7678)
Signed-off-by: Timur Solodovnikov <tsolodov@gmail.com>
2025-11-18 08:34:43 -08:00
Nico Berlee
7d7bbc8061 fix: prevent QUIC reload panic by lazily initializing the listener (#7680)
* fix: prevent QUIC reload panic by lazily initializing the listener

ServePacket on reload receives the reused PacketConn before the new
ServerQUIC has recreated its quic.Listener, so quicListener is nil and
the process panics. Lazily initialise quicListener from the provided
PacketConn when it’s nil and then proceed with ServeQUIC.

fixes: #7679
Signed-off-by: Nico Berlee <nico.berlee@on2it.net>

* test: add regression test for QUIC reload panic

Signed-off-by: Nico Berlee <nico.berlee@on2it.net>

---------

Signed-off-by: Nico Berlee <nico.berlee@on2it.net>
2025-11-18 08:34:29 -08:00