headscale/hscontrol
Kristoffer Dalby 57070680a5 mapper/batcher: restructure internals for correctness
Move per-node pending changes from a shared xsync.Map on the batcher
into multiChannelNodeConn, protected by a dedicated mutex. The new
appendPending/drainPending methods provide atomic append and drain
operations, eliminating data races in addToBatch and
processBatchedChanges.

Add sync.Once to multiChannelNodeConn.close() to make it idempotent,
preventing panics from concurrent close calls on the same channel.

Add started atomic.Bool to guard Start() against being called
multiple times, preventing orphaned goroutines.

Add comprehensive concurrency tests validating these changes.
2026-03-14 02:52:28 -07:00
..
assets Swap favicon for updated version 2026-03-03 05:59:40 +01:00
capver capver: regenerate from docker tags 2026-02-07 08:23:51 +01:00
db all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
derp all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
dns Fix typo in comment about fsnotify behavior 2026-02-27 15:23:06 +01:00
mapper mapper/batcher: restructure internals for correctness 2026-03-14 02:52:28 -07:00
policy all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
routes all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
state state, policy, noise: implement SSH check period auto-approval 2026-02-25 21:28:05 +01:00
templates templates: generalise auth templates for web and OIDC 2026-02-25 21:28:05 +01:00
types all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
util mapper/batcher: restructure internals for correctness 2026-03-14 02:52:28 -07:00
app.go auth: generalise auth flow and introduce AuthVerdict 2026-02-25 21:28:05 +01:00
auth.go Update docs for auth-id changes 2026-03-01 13:38:22 +01:00
auth_tags_test.go auth: generalise auth flow and introduce AuthVerdict 2026-02-25 21:28:05 +01:00
auth_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
debug.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
grpcv1.go hscontrol, cli: add auth register and approve commands 2026-02-25 21:28:05 +01:00
grpcv1_test.go hscontrol: add tests for deleting users with tagged nodes 2026-02-20 21:51:00 +01:00
handlers.go Update docs for auth-id changes 2026-03-01 13:38:22 +01:00
metrics.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
noise.go state, policy, noise: implement SSH check period auto-approval 2026-02-25 21:28:05 +01:00
oidc.go Update docs for auth-id changes 2026-03-01 13:38:22 +01:00
oidc_template_test.go templates: generalise auth templates for web and OIDC 2026-02-25 21:28:05 +01:00
oidc_test.go oidc: make email verification configurable 2025-12-18 11:42:32 +00:00
platform_config.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
poll.go poll: stop stale map sessions through an explicit teardown hook 2026-03-12 01:27:34 -07:00
poll_test.go poll: fix poll test linter violations 2026-03-12 01:27:34 -07:00
tailsql.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
templates_consistency_test.go templates: generalise auth templates for web and OIDC 2026-02-25 21:28:05 +01:00