dcarrillo
3874f6af3f
Update dependencies
2026-07-19 12:27:56 +02:00
dcarrillo
ff97f2c550
Move integration tests to separate Go module to slim main dependency graph ( #56 )
...
integration-tests/ is now its own Go module with a replace directive
pointing to the parent. docker/docker and testcontainers-go are no longer
in the main module, reducing go.mod from 106 to 60 lines and go.sum
from ~480 to 136 lines (-40% direct deps).
Makefile integration-test target updated to cd into the submodule.
2026-07-19 12:23:33 +02:00
dcarrillo
49ffcadb0a
Fix data races, nil-record panics, scanner SSRF, log date layout, shutdown timeouts, and enable stricter linters ( #54 )
...
High (behavioral bugs):
- service.Geo: add RLock on lookups, handle Reload error, keep old DBs on failure
- models.GeoDB.Reload: open new DBs before closing old ones (no reader gap)
- router: guard nil geo records (404 instead of 500) in geo.go, generic.go, dns.go
- router/port_scanner: reject undetermined client IPs (nil->localhost dial)
- internal/httputils: fix access log date layout (02/Jan/2006, not literal Nov)
- server/quic: log.Printf instead of log.Fatal in request handler
Medium:
- server/*: 10s shutdown timeout; SIGTERM drains servers before closing geo DBs
- httputils: Clone() request headers instead of mutating the live map; strings.Builder
- setting/app: handle all os.Stat errors; fix "truster" typos; use errors.New;
remove dead Token field
- cmd: errors.Is for sentinel checks; os.Stderr; log.Fatal instead of panic;
pass http.Handler by value (not pointer-to-interface)
- resolver: validate config at startup (pre-parse RRs, validate IPs); check WriteMsg
errors; Setup returns error
Low:
- .golangci.yaml: enable errcheck, govet, errorlint; fix all resulting findings
- server/tls: explicit TLSConfig{MinVersion: tls.VersionTLS12}
- router/dns: label-exact vhost suffix check, strip port; template.Must
- models: errors.Join instead of %s on []error
- service/geo_test: race-regression test (concurrent lookups during Reload)
- README: Go >= 1.25; fix latent test bug (store.Add->Set in dns_test.go)
2026-07-19 12:09:52 +02:00
dcarrillo
e8d3a20781
New feature: prometheus metrics endpoint ( #46 )
2025-11-03 18:36:13 +01:00
dcarrillo
00749ae529
Add tests for new disable-scan flag
2025-09-26 16:07:05 +02:00
dcarrillo
00b1661ef9
Update dependencies and fix CVE-2025-22870, CVE-2024-40635
2025-03-18 20:25:24 +01:00
dcarrillo
b5fe362183
Make geo database usage optional ( #39 )
2025-01-02 20:13:41 +01:00
dependabot[bot]
15136359ae
Bump github.com/quic-go/quic-go from 0.47.0 to 0.48.2 ( #38 )
...
* Bump github.com/quic-go/quic-go from 0.47.0 to 0.48.2
Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go ) from 0.47.0 to 0.48.2.
- [Release notes](https://github.com/quic-go/quic-go/releases )
- [Changelog](https://github.com/quic-go/quic-go/blob/master/Changelog.md )
- [Commits](https://github.com/quic-go/quic-go/compare/v0.47.0...v0.48.2 )
---
updated-dependencies:
- dependency-name: github.com/quic-go/quic-go
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
* Fix linter errors
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Carrillo <daniel.carrillo@gmail.com >
2024-12-02 19:14:32 +01:00
dcarrillo
4492f77d87
Remove docker compose from integration tests because of the testcontainers dependency nightmare ( #34 )
...
* Remove docker compose from integration tests because of the testcontainers dependency nightmare
2024-06-01 19:12:14 +02:00
dcarrillo
c37642c6c1
Revert "Update dependencies"
...
This reverts commit f3a6f27e99 .
2024-05-25 16:10:48 +02:00
dcarrillo
f3a6f27e99
Update dependencies
2024-05-25 16:07:52 +02:00
dcarrillo
d13ea29071
New whatismydns feature ( #29 )
2024-04-12 19:26:48 +02:00
dcarrillo
f8e27bef56
Add endopoint to check is a given port is open on the client ( #22 )
2023-12-31 12:52:08 +01:00
dcarrillo
55e6cd4816
Update test to latest quic version
2023-07-22 13:20:17 +02:00
dcarrillo
e60d1ae5b7
Initial server handling refactor ( #9 )
2023-03-20 16:36:55 +01:00
dcarrillo
19c72f94a5
Add experimental support for HTTP/3 ( #8 )
...
* Wait for service in integration tests instead of watching for a string
* Add http3 experimental support
2023-03-18 21:06:51 +01:00
dcarrillo
9763ed0e29
Update to golang 1.19
2022-08-11 20:02:27 +02:00
dcarrillo
3df794ecc4
Bump testcontainers-go tp 0.13.0
2022-05-07 13:06:19 +02:00
dcarrillo
ca1d002974
Use gin-gonic/contrib/secure instead of deprecated module
2022-05-07 12:51:13 +02:00
dcarrillo
9070e9a2c2
Use Accept request header instead of user agent to figure out non-browser clients. Funny fact, I borrowed the idea from a fork (' https://github.com/hachmeister/whatismyip/blob/8a3e142cf3ebf54ed3a4b6de2173cc5b13b40e18/router/generic.go#L33 ')
2022-04-30 17:35:12 +02:00
dcarrillo
12da27ddab
Add optional secure headers to responses
2022-04-02 18:12:31 +02:00
dcarrillo
9b10052cd1
refactor on some tests
2021-11-30 16:32:52 +01:00
dcarrillo
def2b0f2f0
Update Gin and testcontainers to latest version
2021-11-30 16:07:31 +01:00
dcarrillo
2fcfa91545
first commit
2021-11-10 20:06:12 +01:00