dependabot[bot]
fcd290272f
Bump actions/checkout from 6.0.1 to 6.0.2
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](8e8c483db8...de0fac2e45 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-26 22:34:44 +00:00
dependabot[bot]
463a4eea79
Bump golang.org/x/crypto in the prod-minor-updates group
...
Bumps the prod-minor-updates group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto ).
Updates `golang.org/x/crypto` from 0.45.0 to 0.46.0
- [Commits](https://github.com/golang/crypto/compare/v0.45.0...v0.46.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:30:51 -08:00
dependabot[bot]
4576a2e8a7
Bump actions/checkout from 6.0.0 to 6.0.1
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](1af3b93b68...8e8c483db8 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:30:42 -08:00
dependabot[bot]
69c13adcdb
Bump actions/upload-artifact from 5.0.0 to 6.0.0
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](330a01c490...b7c566a772 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:30:34 -08:00
dependabot[bot]
3886c1a8c1
Bump docker/setup-buildx-action from 3.11.1 to 3.12.0
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 3.11.1 to 3.12.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](e468171a9d...8d2750c68a )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: 3.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:30:26 -08:00
dependabot[bot]
06eb4d4310
Bump actions/setup-go from 6.1.0 to 6.2.0
...
Bumps [actions/setup-go](https://github.com/actions/setup-go ) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-go/releases )
- [Commits](4dc6199c7b...7a3fe6cf4c )
---
updated-dependencies:
- dependency-name: actions/setup-go
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 17:30:18 -08:00
Owen
247c47b27f
We dont really support the config file anymore
...
Ref #30
2026-01-19 17:29:04 -08:00
Owen
060038c29b
Try to fix mem leak
2025-12-12 22:14:13 -05:00
Owen
5414d21dcd
Quiet normal log message
...
Fixes #2057
2025-12-12 18:40:33 -05:00
Owen
364fa020aa
Add healthcheck route
2025-12-12 11:47:04 -05:00
Owen
b96ee16fbf
Add regex to runs on
1.3.0-s.0
2025-12-11 16:19:08 -05:00
Owen
467d69aa7c
Fix docker username issue
2025-12-08 14:51:13 -05:00
Owen
7c7762ebc5
Merge branch 'main' into dev
1.3.0
2025-12-06 12:16:15 -05:00
Owen
526f9c8b4e
Remove diff
2025-12-06 12:16:03 -05:00
Owen
905983cf61
Merge branch 'main' into dev
2025-12-06 12:15:34 -05:00
Owen
a0879114e2
Merge branch 'LaurenceJJones-enhancement/errgroup-context-propagation'
2025-12-06 12:15:09 -05:00
Owen
0d54a07973
Merge branch 'enhancement/errgroup-context-propagation' of github.com:LaurenceJJones/gerbil into LaurenceJJones-enhancement/errgroup-context-propagation
2025-12-06 12:14:58 -05:00
Owen Schwartz
4cb2fde961
Merge pull request #36 from LaurenceJJones/fix-wg-session-race-condition
...
fix: relay race condition in WireGuard session management
2025-12-06 12:12:04 -05:00
Owen Schwartz
9602599565
Merge pull request #38 from LaurenceJJones/fix/relay-buffer-leak
...
fix: relay buffer leak on UDP read error
2025-12-06 12:07:31 -05:00
Owen Schwartz
11f858b341
Merge pull request #39 from LaurenceJJones/fix/calcpeerbandwidth-optimization
...
feat: optimize calculatePeerBandwidth to avoid nested loops
2025-12-06 11:59:00 -05:00
Owen Schwartz
29b2cb33a2
Merge pull request #42 from fosrl/dependabot/github_actions/actions/setup-go-6.1.0
...
Bump actions/setup-go from 6.0.0 to 6.1.0
2025-12-06 11:48:22 -05:00
Owen Schwartz
34290ffe09
Merge pull request #43 from fosrl/dependabot/github_actions/actions/checkout-6.0.0
...
Bump actions/checkout from 5.0.0 to 6.0.0
2025-12-06 11:48:14 -05:00
Owen Schwartz
1013d0591e
Merge pull request #44 from fosrl/dependabot/docker/minor-updates-60be0b6e22
...
Bump alpine from 3.22 to 3.23 in the minor-updates group
2025-12-06 11:48:07 -05:00
dependabot[bot]
2f6d62ab45
Bump alpine from 3.22 to 3.23 in the minor-updates group
...
Bumps the minor-updates group with 1 update: alpine.
Updates `alpine` from 3.22 to 3.23
---
updated-dependencies:
- dependency-name: alpine
dependency-version: '3.23'
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-updates
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-03 21:23:35 +00:00
Owen
8d6ba79408
Send public key
2025-12-01 16:19:57 -05:00
Owen Schwartz
208b434cb7
Merge pull request #41 from fosrl/dependabot/go_modules/prod-minor-updates-dd7da38a6b
...
Bump golang.org/x/crypto from 0.44.0 to 0.45.0 in the prod-minor-updates group
2025-11-29 13:03:37 -05:00
dependabot[bot]
39ce0ac407
Bump actions/checkout from 5.0.0 to 6.0.0
...
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 >
2025-11-24 22:19:10 +00:00
dependabot[bot]
72bee56412
Bump actions/setup-go from 6.0.0 to 6.1.0
...
Bumps [actions/setup-go](https://github.com/actions/setup-go ) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-go/releases )
- [Commits](4469467582...4dc6199c7b )
---
updated-dependencies:
- dependency-name: actions/setup-go
dependency-version: 6.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-24 22:19:05 +00:00
dependabot[bot]
b32da3a714
Bump golang.org/x/crypto in the prod-minor-updates group
...
Bumps the prod-minor-updates group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto ).
Updates `golang.org/x/crypto` from 0.44.0 to 0.45.0
- [Commits](https://github.com/golang/crypto/compare/v0.44.0...v0.45.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.45.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 21:25:00 +00:00
Laurence
971452e5d3
revert: drop logger formatting changes from calcpeerbandwidth optimization branch
2025-11-16 08:42:57 +00:00
Laurence
bba4345b0f
main: optimize calculatePeerBandwidth to avoid nested peer scans
...
Build a set of current peer public keys during the primary iteration and
prune lastReadings in a single pass, removing the O(n^2) nested loop.
No behavior change; improves efficiency when peer lists and lastReadings
grow large.
2025-11-16 08:40:26 +00:00
Laurence
b2392fb250
relay: fix buffer leak on UDP read error by returning buffer to pool
...
When ReadFromUDP fails in readPackets, the buffer was not returned to the
sync.Pool, causing a small but persistent leak under error conditions.
Return the buffer before continuing to ensure reuse and stable memory.
Scope: minimal hotfix (no broader refactors).
2025-11-16 06:07:48 +00:00
Laurence
697f4131e7
enhancement: base context + errgroup; propagate cancellation; graceful shutdown
...
- main: add base context via signal.NotifyContext; establish errgroup and use it to supervise background tasks; convert ticker to context-aware periodicBandwidthCheck; run HTTP server under errgroup and add graceful shutdown; treat context.Canceled as normal exit
- relay: thread parent context through UDPProxyServer; add cancel func; make packet reader, workers, and cleanup tickers exit on ctx.Done; Stop cancels, closes listener and downstream UDP connections, and closes packet channel to drain workers
- proxy: drop earlier parent context hook for SNI proxy per review; rely on existing Stop() for graceful shutdown
Benefits:
- unified lifecycle and deterministic shutdown across components
- prevents leaked goroutines/tickers and closes sockets cleanly
- consolidated error handling via g.Wait(), with context cancellation treated as non-error
- sets foundation for child errgroups and future structured concurrency
2025-11-16 06:00:32 +00:00
Laurence Jones
e282715251
Merge branch 'main' into fix-wg-session-race-condition
2025-11-16 05:29:46 +00:00
Owen Schwartz
709df6db3e
Merge pull request #33 from fosrl/dependabot/github_actions/actions/upload-artifact-5.0.0
...
Bump actions/upload-artifact from 4.6.2 to 5.0.0
2025-11-13 15:53:58 -05:00
Owen Schwartz
cf2b436470
Merge pull request #34 from fosrl/dependabot/github_actions/docker/setup-qemu-action-3.7.0
...
Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
2025-11-13 15:53:00 -05:00
Owen Schwartz
2a29021572
Merge pull request #35 from fosrl/dependabot/go_modules/prod-minor-updates-c94709d3c3
...
Bump golang.org/x/crypto from 0.43.0 to 0.44.0 in the prod-minor-updates group
2025-11-13 15:52:54 -05:00
Laurence
a3f9a89079
Refactor WireGuard session locking and remove unused methods
...
- Remove unused methods: UpdateLastSeen, GetSenderIndex, MatchesSenderIndex
(replaced by simpler direct usage in Range callbacks)
- Simplify session access pattern: check GetSenderIndex in Range callback,
then call GetDestAddr and UpdateLastSeen when match found
- Optimize UpdateLastSeen usage: only use for existing sessions already
in sync.Map; use direct assignment in struct literals for new sessions
(safe since no concurrent access during creation)
This simplifies the code while maintaining thread-safety for concurrent
access to existing sessions.
2025-11-13 06:43:31 +00:00
Laurence
ee27bf3153
Fix race condition in WireGuard session management
...
The race condition existed because while sync.Map is thread-safe for map
operations (Load, Store, Delete, Range), it does not provide thread-safety
for the data stored within it. When WireGuardSession structs were stored as
pointers in the sync.Map, multiple goroutines could:
1. Retrieve the same session pointer from the map concurrently
2. Access and modify the session's fields (particularly LastSeen) without
synchronization
3. Cause data races when one goroutine reads LastSeen while another updates it
This fix adds a sync.RWMutex to each WireGuardSession struct to protect
concurrent access to its fields. All field access now goes through
thread-safe methods that properly acquire/release the mutex.
Changes:
- Added sync.RWMutex to WireGuardSession struct
- Added thread-safe accessor methods (GetLastSeen, GetDestAddr, etc.)
- Added atomic CheckAndUpdateIfMatch method for efficient check-and-update
- Updated all session field accesses to use thread-safe methods
- Removed redundant Store call after updating LastSeen (pointer update is
atomic in Go, but field access within pointer was not)
2025-11-13 06:26:09 +00:00
dependabot[bot]
a90f681957
Bump golang.org/x/crypto in the prod-minor-updates group
...
Bumps the prod-minor-updates group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto ).
Updates `golang.org/x/crypto` from 0.43.0 to 0.44.0
- [Commits](https://github.com/golang/crypto/compare/v0.43.0...v0.44.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-11 21:19:30 +00:00
dependabot[bot]
3afc82ef9a
Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
...
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action ) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases )
- [Commits](29109295f8...c7c5346462 )
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: 3.7.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-10 21:51:03 +00:00
dependabot[bot]
d3a16f4c59
Bump actions/upload-artifact from 4.6.2 to 5.0.0
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 4.6.2 to 5.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](ea165f8d65...330a01c490 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: 5.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-10-27 22:24:20 +00:00
Owen
2a1911a66f
Update runner to amd64-runner
2025-10-20 16:43:18 -07:00
Owen Schwartz
08341b2385
Merge pull request #32 from marcschaeferger/gh-action
...
Adding GHCR to CI/CD Release Workflow & further improvements
2025-10-20 16:39:54 -07:00
Marc Schäfer
6cde07d479
ci(actions): add GHCR mirroring and cosign signing for Docker images
...
- mirror images from Docker Hub to GHCR using skopeo (preserves multi-arch manifests)
- login to GHCR via docker/login-action for signing/pushing
- install cosign and perform dual signing: keyless (OIDC) + key-based; verify signatures
- add required permissions for id-token/packages and reference necessary secrets
2025-10-21 01:30:51 +02:00
Marc Schäfer
06b1e84f99
feat(ci): add step to update version in main.go during CI/CD pipeline
2025-10-21 01:20:08 +02:00
Marc Schäfer
2b7e93ec92
ci(actions): add permissions section to CI/CD and test workflows
2025-10-21 01:19:36 +02:00
Marc Schäfer
ca23ae7a30
ci(actions): pin action versions to commit SHAs for security
...
- Pin actions/checkout to SHA for v5.0.0
- Pin docker/setup-qemu-action to SHA for v3.6.0
- Pin docker/setup-buildx-action to SHA for v3.11.1
- Pin docker/login-action to SHA for v3.6.0
- Pin actions/setup-go to SHA for v6.0.0
- Pin actions/upload-artifact to SHA for v4.6.2
2025-10-21 01:18:33 +02:00
Owen
661fd86305
Update to use gerbil and not newt
2025-10-20 12:59:17 -07:00
Owen Schwartz
594a499b95
Merge pull request #31 from marcschaeferger/ghcr
...
feat(actions): Sync Images from Docker to GHCR
2025-10-20 12:57:53 -07:00