headscale/hscontrol/types
Kristoffer Dalby d6dfdc100c hscontrol: route hostname handling through dnsname and NodeStore
Ingest (registration and MapRequest updates) now calls
dnsname.SanitizeHostname directly and lets NodeStore auto-bump on
collision. Admin rename uses dnsname.ValidLabel + SetGivenName so
conflicts are surfaced to the caller instead of silently mutated.

Three duplicate invalidDNSRegex definitions, the old NormaliseHostname
and ValidateHostname helpers, EnsureHostname, InvalidString,
ApplyHostnameFromHostInfo, GivenNameHasBeenChanged, generateGivenName
and EnsureUniqueGivenName are removed along with their tests.
ValidateHostname's username half is retained as ValidateUsername for
users.go.

The SaaS-matching collision rule replaces the random "invalid-xxxxxx"
fallback and the 8-character hash suffix; the empty-input fallback is
the literal "node". TestUpdateHostnameFromClient now exercises the
rewrite end-to-end with awkward macOS/Windows names.

Fixes #3188
Fixes #2926
Fixes #2343
Fixes #2762
Fixes #2449
Updates #2177
Updates #2121
Updates #363
2026-04-18 15:12:21 +01:00
..
change change: document PingRequest merge first-wins foot-gun 2026-04-17 16:31:49 +01:00
testcapture testcapture: add typed capture format package 2026-04-17 16:31:49 +01:00
testdata Restore support for "Override local DNS" (#2438) 2025-04-17 17:16:59 +02:00
api_key.go types: add MarshalZerologObject to domain types 2026-02-06 07:40:29 +01:00
common.go oidc: add confirmation page for node registration 2026-04-10 14:09:57 +01:00
common_test.go oidc: add confirmation page for node registration 2026-04-10 14:09:57 +01:00
config.go state: add HA health prober 2026-04-16 15:10:56 +01:00
config_test.go types: omit secret fields from JSON marshalling 2026-04-10 14:09:57 +01:00
const.go improve testing of route failover logic 2024-04-15 12:31:53 +02:00
main_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
node.go hscontrol: route hostname handling through dnsname and NodeStore 2026-04-18 15:12:21 +01:00
node_benchmark_test.go types: avoid NodeView clone in CanAccess 2026-02-26 19:15:07 -08:00
node_tags_test.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
node_test.go hscontrol: route hostname handling through dnsname and NodeStore 2026-04-18 15:12:21 +01:00
policy.go feat: implements apis for managing headscale policy (#1792) 2024-07-18 07:38:25 +02:00
preauth_key.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
preauth_key_test.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
registration.go state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
routes.go Redo route code (#2422) 2025-02-26 16:22:55 +01:00
testlog.go hscontrol/types: silence zerolog by default in tests 2026-04-17 16:31:49 +01:00
types_clone.go all: regenerate generated files for new tool versions 2026-04-09 18:42:25 +01:00
types_view.go all: regenerate generated files for new tool versions 2026-04-09 18:42:25 +01:00
users.go types: fix OIDC identifier path traversal dropping subject 2026-04-10 13:18:56 +01:00
users_test.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
version.go all: apply formatter changes 2026-04-13 17:23:47 +01:00