Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1933 +/- ##
==========================================
+ Coverage 90.15% 90.22% +0.06%
==========================================
Files 92 94 +2
Lines 6575 6813 +238
==========================================
+ Hits 5928 6147 +219
- Misses 498 510 +12
- Partials 149 156 +7 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull Request Overview
This PR implements DNS64 support per RFC 6147, enabling IPv6-only clients to access IPv4-only services by synthesizing AAAA records from A records. The implementation includes a new DNS64 resolver with comprehensive test coverage, configuration validation, and detailed documentation.
Key Changes
- New DNS64Resolver that intercepts AAAA queries, queries for A records when no native IPv6 exists, and synthesizes AAAA records using configurable IPv6 prefixes
- Resolver chain reorganization: DNS64 placed after caching (to avoid synthesizing cached responses), ECS moved after DNS64 (to apply client subnet to both AAAA and A queries)
- Configuration with prefix validation, exclusion set support, and conflict detection (e.g., AAAA filtering)
Reviewed Changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| server/server.go | Adds DNS64Resolver to resolver chain after caching, moves ECSResolver after DNS64 |
| resolver/dns64_resolver.go | Core DNS64 implementation with IPv4-to-IPv6 embedding per RFC 6052, exclusion set handling, and DNSSEC flag management |
| resolver/dns64_resolver_test.go | Comprehensive unit tests covering synthesis, exclusion sets, TTL handling, DNSSEC flags, and edge cases |
| e2e/dns64_test.go | End-to-end integration tests for DNS64 with caching, CNAME chains, multiple prefixes, and exclusion sets |
| config/dns64.go | Configuration structure with validation for prefix lengths, overlap detection, and conflict checking |
| config/dns64_test.go | Configuration validation tests |
| config/config.go | Integrates DNS64 config into main Config struct with validation |
| model/models.go | Adds ResponseTypeSYNTHESIZED with EDE code mapping |
| model/models_enum.go | Adds SYNTHESIZED enum value to ResponseType |
| docs/configuration.md | Comprehensive DNS64 documentation covering RFC compliance, configuration, exclusion sets, and DNSSEC handling |
| docs/config.yml | Example DNS64 configuration with detailed comments |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…e NXDOMAIN handling * Updated DNS64 prefix bits mapping in documentation for accuracy. * Enhanced NXDOMAIN handling in the resolver to include original AAAA query in synthetic responses.
* Added comprehensive test cases for `ExtractRecords` and `ExtractRecordsFromSlice` methods. * Refactored record header initialization using `CreateHeader` utility for consistency.
|
This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days. |
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [0xerr0r/blocky](https://github.com/0xerr0r/blocky) | minor | `v0.28.2` → `v0.29.0` | | [ghcr.io/0xerr0r/blocky](https://github.com/0xERR0R/blocky) | minor | `v0.28.2` → `v0.29.0` | --- ### Release Notes <details> <summary>0xerr0r/blocky (0xerr0r/blocky)</summary> ### [`v0.29.0`](https://github.com/0xERR0R/blocky/releases/tag/v0.29.0) [Compare Source](0xERR0R/blocky@v0.28.2...v0.29.0) #### Changelog ##### Features - [`0c35f21`](0xERR0R/blocky@0c35f21): feat: add RFC 7239 Forwarded header support for client IP parsing ([#​1941](0xERR0R/blocky#1941)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#​1933](0xERR0R/blocky#1933)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#​1940](0xERR0R/blocky#1940)) ([@​0xERR0R](https://github.com/0xERR0R)) ##### Bug fixes - [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#​1948](0xERR0R/blocky#1948)) ([@​mattdy](https://github.com/mattdy)) - [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#​1975](0xERR0R/blocky#1975)) ([@​manofthepeace](https://github.com/manofthepeace)) - [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#​1952](0xERR0R/blocky#1952)) ([@​sonjek](https://github.com/sonjek)) ##### Build and dependencies - [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#​1943](0xERR0R/blocky#1943)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#​1961](0xERR0R/blocky#1961)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#​2000](0xERR0R/blocky#2000)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#​1960](0xERR0R/blocky#1960)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#​1998](0xERR0R/blocky#1998)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#​1992](0xERR0R/blocky#1992)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4f62ec8`](0xERR0R/blocky@4f62ec8): build(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.0 ([#​1976](0xERR0R/blocky#1976)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`16644c5`](0xERR0R/blocky@16644c5): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.0 to 2.36.1 ([#​1978](0xERR0R/blocky#1978)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`36ae188`](0xERR0R/blocky@36ae188): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 ([#​1996](0xERR0R/blocky#1996)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4733c6b`](0xERR0R/blocky@4733c6b): build(deps): bump github.com/breml/rootcerts from 0.3.3 to 0.3.4 ([#​1987](0xERR0R/blocky#1987)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e4f7462`](0xERR0R/blocky@e4f7462): build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 ([#​1972](0xERR0R/blocky#1972)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`f9dd4d2`](0xERR0R/blocky@f9dd4d2): build(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 ([#​1985](0xERR0R/blocky#1985)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e66a29d`](0xERR0R/blocky@e66a29d): build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 ([#​1959](0xERR0R/blocky#1959)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`8e69355`](0xERR0R/blocky@8e69355): build(deps): bump github.com/miekg/dns from 1.1.69 to 1.1.70 ([#​1968](0xERR0R/blocky#1968)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`5e8b555`](0xERR0R/blocky@5e8b555): build(deps): bump github.com/miekg/dns from 1.1.70 to 1.1.72 ([#​1977](0xERR0R/blocky#1977)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ef5dc97`](0xERR0R/blocky@ef5dc97): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 ([#​1956](0xERR0R/blocky#1956)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`670542b`](0xERR0R/blocky@670542b): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.4 ([#​1966](0xERR0R/blocky#1966)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e062742`](0xERR0R/blocky@e062742): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 ([#​1970](0xERR0R/blocky#1970)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4926d16`](0xERR0R/blocky@4926d16): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 ([#​1981](0xERR0R/blocky#1981)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ca0da10`](0xERR0R/blocky@ca0da10): build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 ([#​1955](0xERR0R/blocky#1955)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`567a738`](0xERR0R/blocky@567a738): build(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 ([#​1967](0xERR0R/blocky#1967)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`c3aab87`](0xERR0R/blocky@c3aab87): build(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 ([#​1982](0xERR0R/blocky#1982)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ef79a67`](0xERR0R/blocky@ef79a67): build(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 ([#​1974](0xERR0R/blocky#1974)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6775759`](0xERR0R/blocky@6775759): build(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 ([#​1953](0xERR0R/blocky#1953)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`71c39fc`](0xERR0R/blocky@71c39fc): build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 ([#​1939](0xERR0R/blocky#1939)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`be31648`](0xERR0R/blocky@be31648): build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 ([#​1957](0xERR0R/blocky#1957)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`a574078`](0xERR0R/blocky@a574078): build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 ([#​1971](0xERR0R/blocky#1971)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6f3f295`](0xERR0R/blocky@6f3f295): build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0 ([#​1988](0xERR0R/blocky#1988)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6a75afb`](0xERR0R/blocky@6a75afb): build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 ([#​1997](0xERR0R/blocky#1997)) ([@​dependabot](https://github.com/dependabot)\[bot]) ##### Misc - [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#​1993](0xERR0R/blocky#1993)) ([@​JCHHeilmann](https://github.com/JCHHeilmann)) - [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#​1942](0xERR0R/blocky#1942)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#​1951](0xERR0R/blocky#1951)) ([@​sonjek](https://github.com/sonjek)) - [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#​1945](0xERR0R/blocky#1945)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#​1944](0xERR0R/blocky#1944)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#​1868](0xERR0R/blocky#1868)) ([@​zeilenschubser](https://github.com/zeilenschubser)) </details> <details> <summary>0xERR0R/blocky (ghcr.io/0xerr0r/blocky)</summary> ### [`v0.29.0`](https://github.com/0xERR0R/blocky/releases/tag/v0.29.0) [Compare Source](0xERR0R/blocky@v0.28.2...v0.29.0) #### Changelog ##### Features - [`0c35f21`](0xERR0R/blocky@0c35f21): feat: add RFC 7239 Forwarded header support for client IP parsing ([#​1941](0xERR0R/blocky#1941)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#​1933](0xERR0R/blocky#1933)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#​1940](0xERR0R/blocky#1940)) ([@​0xERR0R](https://github.com/0xERR0R)) ##### Bug fixes - [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#​1948](0xERR0R/blocky#1948)) ([@​mattdy](https://github.com/mattdy)) - [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#​1975](0xERR0R/blocky#1975)) ([@​manofthepeace](https://github.com/manofthepeace)) - [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#​1952](0xERR0R/blocky#1952)) ([@​sonjek](https://github.com/sonjek)) ##### Build and dependencies - [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#​1943](0xERR0R/blocky#1943)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#​1961](0xERR0R/blocky#1961)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#​2000](0xERR0R/blocky#2000)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#​1960](0xERR0R/blocky#1960)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#​1998](0xERR0R/blocky#1998)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#​1992](0xERR0R/blocky#1992)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4f62ec8`](0xERR0R/blocky@4f62ec8): build(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.0 ([#​1976](0xERR0R/blocky#1976)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`16644c5`](0xERR0R/blocky@16644c5): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.0 to 2.36.1 ([#​1978](0xERR0R/blocky#1978)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`36ae188`](0xERR0R/blocky@36ae188): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 ([#​1996](0xERR0R/blocky#1996)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4733c6b`](0xERR0R/blocky@4733c6b): build(deps): bump github.com/breml/rootcerts from 0.3.3 to 0.3.4 ([#​1987](0xERR0R/blocky#1987)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e4f7462`](0xERR0R/blocky@e4f7462): build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 ([#​1972](0xERR0R/blocky#1972)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`f9dd4d2`](0xERR0R/blocky@f9dd4d2): build(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 ([#​1985](0xERR0R/blocky#1985)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e66a29d`](0xERR0R/blocky@e66a29d): build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 ([#​1959](0xERR0R/blocky#1959)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`8e69355`](0xERR0R/blocky@8e69355): build(deps): bump github.com/miekg/dns from 1.1.69 to 1.1.70 ([#​1968](0xERR0R/blocky#1968)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`5e8b555`](0xERR0R/blocky@5e8b555): build(deps): bump github.com/miekg/dns from 1.1.70 to 1.1.72 ([#​1977](0xERR0R/blocky#1977)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ef5dc97`](0xERR0R/blocky@ef5dc97): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 ([#​1956](0xERR0R/blocky#1956)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`670542b`](0xERR0R/blocky@670542b): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.4 ([#​1966](0xERR0R/blocky#1966)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e062742`](0xERR0R/blocky@e062742): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 ([#​1970](0xERR0R/blocky#1970)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4926d16`](0xERR0R/blocky@4926d16): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 ([#​1981](0xERR0R/blocky#1981)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ca0da10`](0xERR0R/blocky@ca0da10): build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 ([#​1955](0xERR0R/blocky#1955)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`567a738`](0xERR0R/blocky@567a738): build(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 ([#​1967](0xERR0R/blocky#1967)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`c3aab87`](0xERR0R/blocky@c3aab87): build(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 ([#​1982](0xERR0R/blocky#1982)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ef79a67`](0xERR0R/blocky@ef79a67): build(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 ([#​1974](0xERR0R/blocky#1974)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6775759`](0xERR0R/blocky@6775759): build(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 ([#​1953](0xERR0R/blocky#1953)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`71c39fc`](0xERR0R/blocky@71c39fc): build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 ([#​1939](0xERR0R/blocky#1939)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`be31648`](0xERR0R/blocky@be31648): build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 ([#​1957](0xERR0R/blocky#1957)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`a574078`](0xERR0R/blocky@a574078): build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 ([#​1971](0xERR0R/blocky#1971)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6f3f295`](0xERR0R/blocky@6f3f295): build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0 ([#​1988](0xERR0R/blocky#1988)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6a75afb`](0xERR0R/blocky@6a75afb): build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 ([#​1997](0xERR0R/blocky#1997)) ([@​dependabot](https://github.com/dependabot)\[bot]) ##### Misc - [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#​1993](0xERR0R/blocky#1993)) ([@​JCHHeilmann](https://github.com/JCHHeilmann)) - [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#​1942](0xERR0R/blocky#1942)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#​1951](0xERR0R/blocky#1951)) ([@​sonjek](https://github.com/sonjek)) - [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#​1945](0xERR0R/blocky#1945)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#​1944](0xERR0R/blocky#1944)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#​1868](0xERR0R/blocky#1868)) ([@​zeilenschubser](https://github.com/zeilenschubser)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4282 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/0xerr0r/blocky](https://github.com/0xERR0R/blocky) | minor | `v0.28.2` → `v0.29.0` | --- ### Release Notes <details> <summary>0xERR0R/blocky (ghcr.io/0xerr0r/blocky)</summary> ### [`v0.29.0`](https://github.com/0xERR0R/blocky/releases/tag/v0.29.0) [Compare Source](0xERR0R/blocky@v0.28.2...v0.29.0) #### Changelog ##### Features - [`0c35f21`](0xERR0R/blocky@0c35f21): feat: add RFC 7239 Forwarded header support for client IP parsing ([#​1941](0xERR0R/blocky#1941)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#​1933](0xERR0R/blocky#1933)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#​1940](0xERR0R/blocky#1940)) ([@​0xERR0R](https://github.com/0xERR0R)) ##### Bug fixes - [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#​1948](0xERR0R/blocky#1948)) ([@​mattdy](https://github.com/mattdy)) - [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#​1975](0xERR0R/blocky#1975)) ([@​manofthepeace](https://github.com/manofthepeace)) - [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#​1952](0xERR0R/blocky#1952)) ([@​sonjek](https://github.com/sonjek)) ##### Build and dependencies - [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#​1943](0xERR0R/blocky#1943)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#​1961](0xERR0R/blocky#1961)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#​2000](0xERR0R/blocky#2000)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#​1960](0xERR0R/blocky#1960)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#​1998](0xERR0R/blocky#1998)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#​1992](0xERR0R/blocky#1992)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4f62ec8`](0xERR0R/blocky@4f62ec8): build(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.0 ([#​1976](0xERR0R/blocky#1976)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`16644c5`](0xERR0R/blocky@16644c5): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.0 to 2.36.1 ([#​1978](0xERR0R/blocky#1978)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`36ae188`](0xERR0R/blocky@36ae188): build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 ([#​1996](0xERR0R/blocky#1996)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4733c6b`](0xERR0R/blocky@4733c6b): build(deps): bump github.com/breml/rootcerts from 0.3.3 to 0.3.4 ([#​1987](0xERR0R/blocky#1987)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e4f7462`](0xERR0R/blocky@e4f7462): build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 ([#​1972](0xERR0R/blocky#1972)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`f9dd4d2`](0xERR0R/blocky@f9dd4d2): build(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 ([#​1985](0xERR0R/blocky#1985)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e66a29d`](0xERR0R/blocky@e66a29d): build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 ([#​1959](0xERR0R/blocky#1959)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`8e69355`](0xERR0R/blocky@8e69355): build(deps): bump github.com/miekg/dns from 1.1.69 to 1.1.70 ([#​1968](0xERR0R/blocky#1968)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`5e8b555`](0xERR0R/blocky@5e8b555): build(deps): bump github.com/miekg/dns from 1.1.70 to 1.1.72 ([#​1977](0xERR0R/blocky#1977)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ef5dc97`](0xERR0R/blocky@ef5dc97): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 ([#​1956](0xERR0R/blocky#1956)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`670542b`](0xERR0R/blocky@670542b): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.4 ([#​1966](0xERR0R/blocky#1966)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`e062742`](0xERR0R/blocky@e062742): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 ([#​1970](0xERR0R/blocky#1970)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`4926d16`](0xERR0R/blocky@4926d16): build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 ([#​1981](0xERR0R/blocky#1981)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ca0da10`](0xERR0R/blocky@ca0da10): build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 ([#​1955](0xERR0R/blocky#1955)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`567a738`](0xERR0R/blocky@567a738): build(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 ([#​1967](0xERR0R/blocky#1967)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`c3aab87`](0xERR0R/blocky@c3aab87): build(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 ([#​1982](0xERR0R/blocky#1982)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`ef79a67`](0xERR0R/blocky@ef79a67): build(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 ([#​1974](0xERR0R/blocky#1974)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6775759`](0xERR0R/blocky@6775759): build(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 ([#​1953](0xERR0R/blocky#1953)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`71c39fc`](0xERR0R/blocky@71c39fc): build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 ([#​1939](0xERR0R/blocky#1939)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`be31648`](0xERR0R/blocky@be31648): build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 ([#​1957](0xERR0R/blocky#1957)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`a574078`](0xERR0R/blocky@a574078): build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 ([#​1971](0xERR0R/blocky#1971)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6f3f295`](0xERR0R/blocky@6f3f295): build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0 ([#​1988](0xERR0R/blocky#1988)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`6a75afb`](0xERR0R/blocky@6a75afb): build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 ([#​1997](0xERR0R/blocky#1997)) ([@​dependabot](https://github.com/dependabot)\[bot]) ##### Misc - [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#​1993](0xERR0R/blocky#1993)) ([@​JCHHeilmann](https://github.com/JCHHeilmann)) - [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#​1942](0xERR0R/blocky#1942)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#​1951](0xERR0R/blocky#1951)) ([@​sonjek](https://github.com/sonjek)) - [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#​1945](0xERR0R/blocky#1945)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#​1944](0xERR0R/blocky#1944)) ([@​0xERR0R](https://github.com/0xERR0R)) - [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#​1868](0xERR0R/blocky#1868)) ([@​zeilenschubser](https://github.com/zeilenschubser)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS44IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4283 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
closes #1698