Skip to content

fix: use context based versions of net.Listen and net.Dial#1952

Merged
0xERR0R merged 4 commits into0xERR0R:mainfrom
sonjek:fix_ctx
Jan 23, 2026
Merged

fix: use context based versions of net.Listen and net.Dial#1952
0xERR0R merged 4 commits into0xERR0R:mainfrom
sonjek:fix_ctx

Conversation

@sonjek
Copy link
Copy Markdown
Contributor

@sonjek sonjek commented Dec 3, 2025

The context based versions of net.Listen and net.Dial allow to cancel operations, set timeouts, and prevent resource leaks

@codecov
Copy link
Copy Markdown

codecov bot commented Dec 3, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.19%. Comparing base (011e3eb) to head (826a746).
⚠️ Report is 9 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1952      +/-   ##
==========================================
- Coverage   90.22%   90.19%   -0.03%     
==========================================
  Files          94       94              
  Lines        6813     6814       +1     
==========================================
- Hits         6147     6146       -1     
- Misses        510      512       +2     
  Partials      156      156              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link
Copy Markdown
Contributor

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.

@github-actions github-actions bot added the Stale label Jan 19, 2026
@github-actions github-actions bot removed the Stale label Jan 20, 2026
Copy link
Copy Markdown
Owner

@0xERR0R 0xERR0R left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@0xERR0R 0xERR0R enabled auto-merge (squash) January 23, 2026 07:51
@0xERR0R 0xERR0R merged commit 9874212 into 0xERR0R:main Jan 23, 2026
13 checks passed
@0xERR0R 0xERR0R added this to the v0.29.0 milestone Jan 23, 2026
@0xERR0R 0xERR0R added the 🧰 technical debts Technical debts, refactoring label Jan 23, 2026
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Feb 27, 2026
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 ([#&#8203;1941](0xERR0R/blocky#1941)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#&#8203;1933](0xERR0R/blocky#1933)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#&#8203;1940](0xERR0R/blocky#1940)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))

##### Bug fixes

- [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#&#8203;1948](0xERR0R/blocky#1948)) ([@&#8203;mattdy](https://github.com/mattdy))
- [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#&#8203;1975](0xERR0R/blocky#1975)) ([@&#8203;manofthepeace](https://github.com/manofthepeace))
- [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#&#8203;1952](0xERR0R/blocky#1952)) ([@&#8203;sonjek](https://github.com/sonjek))

##### Build and dependencies

- [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#&#8203;1943](0xERR0R/blocky#1943)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#&#8203;1961](0xERR0R/blocky#1961)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#&#8203;2000](0xERR0R/blocky#2000)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#&#8203;1960](0xERR0R/blocky#1960)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#&#8203;1998](0xERR0R/blocky#1998)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#&#8203;1992](0xERR0R/blocky#1992)) ([@&#8203;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 ([#&#8203;1976](0xERR0R/blocky#1976)) ([@&#8203;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 ([#&#8203;1978](0xERR0R/blocky#1978)) ([@&#8203;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 ([#&#8203;1996](0xERR0R/blocky#1996)) ([@&#8203;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 ([#&#8203;1987](0xERR0R/blocky#1987)) ([@&#8203;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 ([#&#8203;1972](0xERR0R/blocky#1972)) ([@&#8203;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 ([#&#8203;1985](0xERR0R/blocky#1985)) ([@&#8203;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 ([#&#8203;1959](0xERR0R/blocky#1959)) ([@&#8203;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 ([#&#8203;1968](0xERR0R/blocky#1968)) ([@&#8203;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 ([#&#8203;1977](0xERR0R/blocky#1977)) ([@&#8203;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 ([#&#8203;1956](0xERR0R/blocky#1956)) ([@&#8203;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 ([#&#8203;1966](0xERR0R/blocky#1966)) ([@&#8203;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 ([#&#8203;1970](0xERR0R/blocky#1970)) ([@&#8203;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 ([#&#8203;1981](0xERR0R/blocky#1981)) ([@&#8203;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 ([#&#8203;1955](0xERR0R/blocky#1955)) ([@&#8203;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 ([#&#8203;1967](0xERR0R/blocky#1967)) ([@&#8203;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 ([#&#8203;1982](0xERR0R/blocky#1982)) ([@&#8203;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 ([#&#8203;1974](0xERR0R/blocky#1974)) ([@&#8203;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 ([#&#8203;1953](0xERR0R/blocky#1953)) ([@&#8203;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 ([#&#8203;1939](0xERR0R/blocky#1939)) ([@&#8203;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 ([#&#8203;1957](0xERR0R/blocky#1957)) ([@&#8203;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 ([#&#8203;1971](0xERR0R/blocky#1971)) ([@&#8203;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 ([#&#8203;1988](0xERR0R/blocky#1988)) ([@&#8203;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 ([#&#8203;1997](0xERR0R/blocky#1997)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])

##### Misc

- [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#&#8203;1993](0xERR0R/blocky#1993)) ([@&#8203;JCHHeilmann](https://github.com/JCHHeilmann))
- [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#&#8203;1942](0xERR0R/blocky#1942)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#&#8203;1951](0xERR0R/blocky#1951)) ([@&#8203;sonjek](https://github.com/sonjek))
- [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#&#8203;1945](0xERR0R/blocky#1945)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#&#8203;1944](0xERR0R/blocky#1944)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#&#8203;1868](0xERR0R/blocky#1868)) ([@&#8203;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 ([#&#8203;1941](0xERR0R/blocky#1941)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#&#8203;1933](0xERR0R/blocky#1933)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#&#8203;1940](0xERR0R/blocky#1940)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))

##### Bug fixes

- [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#&#8203;1948](0xERR0R/blocky#1948)) ([@&#8203;mattdy](https://github.com/mattdy))
- [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#&#8203;1975](0xERR0R/blocky#1975)) ([@&#8203;manofthepeace](https://github.com/manofthepeace))
- [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#&#8203;1952](0xERR0R/blocky#1952)) ([@&#8203;sonjek](https://github.com/sonjek))

##### Build and dependencies

- [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#&#8203;1943](0xERR0R/blocky#1943)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#&#8203;1961](0xERR0R/blocky#1961)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#&#8203;2000](0xERR0R/blocky#2000)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#&#8203;1960](0xERR0R/blocky#1960)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#&#8203;1998](0xERR0R/blocky#1998)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#&#8203;1992](0xERR0R/blocky#1992)) ([@&#8203;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 ([#&#8203;1976](0xERR0R/blocky#1976)) ([@&#8203;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 ([#&#8203;1978](0xERR0R/blocky#1978)) ([@&#8203;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 ([#&#8203;1996](0xERR0R/blocky#1996)) ([@&#8203;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 ([#&#8203;1987](0xERR0R/blocky#1987)) ([@&#8203;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 ([#&#8203;1972](0xERR0R/blocky#1972)) ([@&#8203;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 ([#&#8203;1985](0xERR0R/blocky#1985)) ([@&#8203;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 ([#&#8203;1959](0xERR0R/blocky#1959)) ([@&#8203;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 ([#&#8203;1968](0xERR0R/blocky#1968)) ([@&#8203;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 ([#&#8203;1977](0xERR0R/blocky#1977)) ([@&#8203;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 ([#&#8203;1956](0xERR0R/blocky#1956)) ([@&#8203;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 ([#&#8203;1966](0xERR0R/blocky#1966)) ([@&#8203;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 ([#&#8203;1970](0xERR0R/blocky#1970)) ([@&#8203;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 ([#&#8203;1981](0xERR0R/blocky#1981)) ([@&#8203;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 ([#&#8203;1955](0xERR0R/blocky#1955)) ([@&#8203;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 ([#&#8203;1967](0xERR0R/blocky#1967)) ([@&#8203;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 ([#&#8203;1982](0xERR0R/blocky#1982)) ([@&#8203;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 ([#&#8203;1974](0xERR0R/blocky#1974)) ([@&#8203;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 ([#&#8203;1953](0xERR0R/blocky#1953)) ([@&#8203;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 ([#&#8203;1939](0xERR0R/blocky#1939)) ([@&#8203;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 ([#&#8203;1957](0xERR0R/blocky#1957)) ([@&#8203;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 ([#&#8203;1971](0xERR0R/blocky#1971)) ([@&#8203;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 ([#&#8203;1988](0xERR0R/blocky#1988)) ([@&#8203;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 ([#&#8203;1997](0xERR0R/blocky#1997)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])

##### Misc

- [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#&#8203;1993](0xERR0R/blocky#1993)) ([@&#8203;JCHHeilmann](https://github.com/JCHHeilmann))
- [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#&#8203;1942](0xERR0R/blocky#1942)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#&#8203;1951](0xERR0R/blocky#1951)) ([@&#8203;sonjek](https://github.com/sonjek))
- [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#&#8203;1945](0xERR0R/blocky#1945)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#&#8203;1944](0xERR0R/blocky#1944)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#&#8203;1868](0xERR0R/blocky#1868)) ([@&#8203;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>
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Feb 27, 2026
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 ([#&#8203;1941](0xERR0R/blocky#1941)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`011e3eb`](0xERR0R/blocky@011e3eb): feat: implement DNS64 support ([#&#8203;1933](0xERR0R/blocky#1933)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`e199445`](0xERR0R/blocky@e199445): feat: improve IP parsing from X-Forwarded-For header ([#&#8203;1940](0xERR0R/blocky#1940)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))

##### Bug fixes

- [`257fe07`](0xERR0R/blocky@257fe07): fix: Incorrect rate data shown on Grafana dashboards ([#&#8203;1948](0xERR0R/blocky#1948)) ([@&#8203;mattdy](https://github.com/mattdy))
- [`1a4d22d`](0xERR0R/blocky@1a4d22d): fix: db automigration with timescaledb ([#&#8203;1975](0xERR0R/blocky#1975)) ([@&#8203;manofthepeace](https://github.com/manofthepeace))
- [`9874212`](0xERR0R/blocky@9874212): fix: use context based versions of net.Listen and net.Dial ([#&#8203;1952](0xERR0R/blocky#1952)) ([@&#8203;sonjek](https://github.com/sonjek))

##### Build and dependencies

- [`fe67404`](0xERR0R/blocky@fe67404): build(deps): bump actions/checkout from 5 to 6 ([#&#8203;1943](0xERR0R/blocky#1943)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`4752061`](0xERR0R/blocky@4752061): build(deps): bump actions/download-artifact from 6 to 7 ([#&#8203;1961](0xERR0R/blocky#1961)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`d459311`](0xERR0R/blocky@d459311): build(deps): bump actions/download-artifact from 7 to 8 ([#&#8203;2000](0xERR0R/blocky#2000)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`fa1614b`](0xERR0R/blocky@fa1614b): build(deps): bump actions/upload-artifact from 5 to 6 ([#&#8203;1960](0xERR0R/blocky#1960)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`11b6f92`](0xERR0R/blocky@11b6f92): build(deps): bump actions/upload-artifact from 6 to 7 ([#&#8203;1998](0xERR0R/blocky#1998)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`e83805c`](0xERR0R/blocky@e83805c): build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#&#8203;1992](0xERR0R/blocky#1992)) ([@&#8203;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 ([#&#8203;1976](0xERR0R/blocky#1976)) ([@&#8203;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 ([#&#8203;1978](0xERR0R/blocky#1978)) ([@&#8203;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 ([#&#8203;1996](0xERR0R/blocky#1996)) ([@&#8203;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 ([#&#8203;1987](0xERR0R/blocky#1987)) ([@&#8203;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 ([#&#8203;1972](0xERR0R/blocky#1972)) ([@&#8203;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 ([#&#8203;1985](0xERR0R/blocky#1985)) ([@&#8203;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 ([#&#8203;1959](0xERR0R/blocky#1959)) ([@&#8203;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 ([#&#8203;1968](0xERR0R/blocky#1968)) ([@&#8203;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 ([#&#8203;1977](0xERR0R/blocky#1977)) ([@&#8203;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 ([#&#8203;1956](0xERR0R/blocky#1956)) ([@&#8203;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 ([#&#8203;1966](0xERR0R/blocky#1966)) ([@&#8203;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 ([#&#8203;1970](0xERR0R/blocky#1970)) ([@&#8203;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 ([#&#8203;1981](0xERR0R/blocky#1981)) ([@&#8203;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 ([#&#8203;1955](0xERR0R/blocky#1955)) ([@&#8203;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 ([#&#8203;1967](0xERR0R/blocky#1967)) ([@&#8203;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 ([#&#8203;1982](0xERR0R/blocky#1982)) ([@&#8203;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 ([#&#8203;1974](0xERR0R/blocky#1974)) ([@&#8203;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 ([#&#8203;1953](0xERR0R/blocky#1953)) ([@&#8203;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 ([#&#8203;1939](0xERR0R/blocky#1939)) ([@&#8203;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 ([#&#8203;1957](0xERR0R/blocky#1957)) ([@&#8203;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 ([#&#8203;1971](0xERR0R/blocky#1971)) ([@&#8203;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 ([#&#8203;1988](0xERR0R/blocky#1988)) ([@&#8203;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 ([#&#8203;1997](0xERR0R/blocky#1997)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])

##### Misc

- [`439e99b`](0xERR0R/blocky@439e99b): Add Blocky Visor to web UIs section in installation.md ([#&#8203;1993](0xERR0R/blocky#1993)) ([@&#8203;JCHHeilmann](https://github.com/JCHHeilmann))
- [`ced469f`](0xERR0R/blocky@ced469f): refactor: centralize DNS response creation logic with helper functions ([#&#8203;1942](0xERR0R/blocky#1942)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`3075c38`](0xERR0R/blocky@3075c38): refactor: clean up obsolete Go syntax ([#&#8203;1951](0xERR0R/blocky#1951)) ([@&#8203;sonjek](https://github.com/sonjek))
- [`9fe42a8`](0xERR0R/blocky@9fe42a8): refactor: simplify code for improved readability and maintainability ([#&#8203;1945](0xERR0R/blocky#1945)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`6581668`](0xERR0R/blocky@6581668): refactor: use mockery for mocks ([#&#8203;1944](0xERR0R/blocky#1944)) ([@&#8203;0xERR0R](https://github.com/0xERR0R))
- [`55ab95e`](0xERR0R/blocky@55ab95e): test(metrics): Prometheus metrics ([#&#8203;1868](0xERR0R/blocky#1868)) ([@&#8203;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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🧰 technical debts Technical debts, refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants