James Tucker
7b2c32b913
net/netns: compose caller ControlContext with namespace setup
...
Prepare for shared socket policy for DERP, control, and log uploads.
Callers need to configure options such as TCP user timeout on the same
socket that netns configures to avoid routing loops.
Use ControlContext for dialer namespace setup and run any caller-supplied
ControlContext afterward, only if namespace setup succeeds. Reject a
non-nil Control unconditionally with a panic directing callers to
ControlContext, including when netns is disabled, rather than support
both hook types and their precedence rules. Listener Control hooks
remain unchanged.
Existing in-tree FromDialer callers supply neither hook, so no caller
migration is required. Keep socket defaults and proxy-wrapping behavior
unchanged. Test hook ordering, context and argument forwarding, errors,
legacy-hook rejection, disabled mode, and proxy delegation.
Updates tailscale/corp#50948
Change-Id: I9d778273f3257fe8a298463ef29ec2dd5d5fb7b0
Signed-off-by: James Tucker <james@tailscale.com>
2026-11-10 23:01:54 -08:00
.bencher
bencher: add config to suppress failures on benchmark regressions.
2021-10-01 16:16:02 -07:00
.github
tstest/integration: add Windows unattended-mode test coverage ( #21876 )
2026-11-10 18:51:07 -07:00
appc
appc: add test for AppDNSRoutes ignoring subnet mode apps
2026-11-03 19:19:18 -05:00
atomicfile
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
chirp
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
client
tsnet: build with minimal feature tags, add test
2026-11-10 10:17:13 -08:00
clientupdate
clientupdate: use a per-update Linux download directory ( #21853 )
2026-10-19 15:34:25 -07:00
cmd
net,ipn,cmd: migrate dialer hooks to ControlContext
2026-11-10 16:47:42 -08:00
control
derp,control,logtail: add baseline heartbeat and upload metrics
2026-11-10 16:48:38 -08:00
derp
derp,control,logtail: add baseline heartbeat and upload metrics
2026-11-10 16:48:38 -08:00
disco
fuzz: wire fuzzing to a standalone oss-fuzz script ( #20862 )
2026-08-31 11:59:06 -06:00
docs
Dockerfile: use our own Go toolchain, not the golang Docker image
2026-09-01 15:47:33 -07:00
doctor
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
drive
drive/driveimpl/compositedav: don't run ttlcache cleanup goroutines
2026-10-23 20:41:40 -04:00
envknob
envknob: add SetenvForTest helper for safe environment variable handling
2026-08-19 12:22:26 +01:00
feature
tsnet: build with minimal feature tags, add test
2026-11-10 10:17:13 -08:00
fuzz
k8s-operator,sessionrecording: fix SPDY protocol DoS risks ( #21385 )
2026-10-09 10:12:18 -06:00
gokrazy
tstest/natlab/vmtest, gokrazy, cmd/tailscale/cli: add minimal-build vmtests
2026-09-30 15:53:47 -07:00
health
health, net/netmon: fix tests that expected eventbus events by pointer
2026-11-10 18:13:02 -08:00
hostinfo
hostinfo,ssh/tailssh: don't leak systemd service env to child processes
2026-10-28 15:17:19 -07:00
internal
net/dns: flush stale MagicDNS NXDOMAINs on Apple platforms ( #21584 )
2026-10-13 15:48:31 -04:00
ipn
tstest/integration: add Windows unattended-mode test coverage ( #21876 )
2026-11-10 18:51:07 -07:00
jsondb
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
k8s-operator
k8s-operator/reconciler: test ProxyClass metrics for PeerRelay
2026-11-05 17:22:05 +00:00
kube
ipn, ipn/ipnlocal: remove Notify.NetMap, size initial status to subscription
2026-09-14 09:37:30 -07:00
licenses
licenses: update license notices
2026-11-10 12:39:33 -08:00
log
log/filelogger, logpolicy: put Windows disk logs next to the log config
2026-09-24 11:52:30 -07:00
logpolicy
logpolicy, net/dnscache: cache log server DNS lookups across dials
2026-10-01 19:22:39 -07:00
logtail
derp,control,logtail: add baseline heartbeat and upload metrics
2026-11-10 16:48:38 -08:00
metrics
metrics: use Linux 6.2+ stat fast path for CurrentFDs
2026-09-08 18:01:59 -07:00
misc
misc/bumpdeps, .github/workflows: unify the bumpdeps tool and bumpdep workflow
2026-09-23 06:42:52 -07:00
net
net/netns: compose caller ControlContext with namespace setup
2026-11-10 23:01:54 -08:00
omit
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
packages /deb
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
paths
cmd/tailscaled, safesocket: add --windows-mode=dev
2026-09-28 13:26:52 -07:00
portlist
portlist: exercise Linux discovery backends with real sockets
2026-09-14 19:16:36 -07:00
posture
posture: add HealthTracker for serial number retrieval ( #19181 )
2026-04-25 15:42:47 -03:00
prober
prober: cache CRLs across TLS probes ( #21286 )
2026-09-16 00:08:19 -04:00
proxymap
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
release
release/dist/unixpkgs: set file modes explicitly in deb and rpm packages ( #22203 )
2026-11-10 10:39:16 +00:00
safesocket
cmd/tailscaled, safesocket: add --windows-mode=dev
2026-09-28 13:26:52 -07:00
safeweb
all: don't repeat the the word "the" unnecessarily
2026-06-18 16:32:08 +01:00
scripts
scripts/installer.sh: add Omarchy as an Arch derivative
2026-09-22 13:53:57 -07:00
sessionrecording
sessionrecording: close idle connections after upload
2026-06-19 13:42:14 +01:00
ssh /tailssh
ssh/tailssh: accept an empty --groups= in the incubator
2026-11-03 12:36:20 -08:00
syncs
cmd/vet: add subtestnames analyzer; fix all existing violations
2026-04-05 15:52:51 -07:00
tailcfg
net/netcheck: never prefer a STUN-only region as the home DERP ( #21976 )
2026-11-04 21:22:51 -08:00
tempfork
go.toolchain.branch: switch to Go 1.27
2026-08-27 09:52:15 -07:00
tka
types/key: rename NLPublic/Private to TLPublic/Private
2026-10-02 16:03:51 +01:00
tool
client,tool: bump node to latest 22.x
2026-10-26 14:29:40 -06:00
tsconsensus
all: migrate code off Notify.NetMap to Notify.SelfChange
2026-05-01 06:51:40 -07:00
tsconst
net/{netmon,tstun},tsconst: avoid enumerating all interfaces when retrieving the default
2026-11-07 12:29:01 -08:00
tsd
ipn/ipnlocal,tsd: add NoiseRoundTripper to tsd.Sys
2026-05-13 14:56:28 -07:00
tsnet
tsnet: build with minimal feature tags, add test
2026-11-10 10:17:13 -08:00
tstest
tstest/integration: catch tailscaled crashes on the Windows service ( #21883 )
2026-11-10 18:51:56 -07:00
tstime
tstime/mono: add AtomicTime, remove Time.LoadAtomic and StoreAtomic
2026-11-10 13:04:27 -08:00
tsweb
client/web, tsweb/compserve: serve index.html for the root path
2026-09-21 15:42:33 -07:00
types
types/appctype: remove Conn25Attr type
2026-11-03 14:54:57 -05:00
util
util/eventbus/eventbuscheck: add whole-program T vs *T event check
2026-11-10 18:13:02 -08:00
version
version/mkversion: don't use os.DevNull for git config in tests
2026-10-09 08:10:57 -07:00
wf
wf: allow limited broadcast to/from permitted interfaces when using an exit node on Windows
2026-01-23 18:30:38 -06:00
wgengine
go.mod,wgengine/wgcfg: bump wg-go & configure staged global limit on iOS
2026-11-10 16:45:40 -08:00
wif
wif: add AWS ecs for autogenerated OIDC tokens
2026-03-25 14:41:41 -06:00
words
words: add a missing scale
2026-10-22 10:52:43 -04:00
.gitattributes
.gitattributes: explicitly mark text files as such with eol
2026-06-23 13:04:07 -07:00
.gitignore
cmd/fbstatus: add framebuffer status display for the Tailscale appliance
2026-07-02 09:24:01 -07:00
.golangci.yml
.golangci.yml: enforce gliderssh import alias via importas linter
2026-04-07 11:59:38 +01:00
.policy-tests.yml
.github,.policy-tests.yml: test .policy.yml in CI
2026-06-26 15:55:15 -07:00
.policy.yml
.policy.yml: tweak policy after testing
2026-06-26 12:28:02 -07:00
.stignore
Add .stignore for syncthing ( #18540 )
2026-01-27 16:15:17 -08:00
ALPINE.txt
docker: bump alpine v3.19 -> 3.22 ( #17155 )
2025-09-17 20:22:24 +01:00
api.md
{api.md,publicapi}: remove old API docs ( #13468 )
2024-09-13 14:10:33 -06:00
assert_ts_toolchain_match.go
.: permit running binary built with TS_GO_NEXT=1
2026-02-23 09:37:04 -08:00
build_dist.sh
tstest/natlab/vmtest, gokrazy, cmd/tailscale/cli: add minimal-build vmtests
2026-09-30 15:53:47 -07:00
build_docker.sh
go.mod,build_docker.sh: support setting --output for mkctr ( #21692 )
2026-10-08 10:04:24 +01:00
cache_key_test.go
util/cibuild, cache_key_test: skip TestTsgoRevInCacheKey outside Tailscale CI
2026-05-14 15:55:05 -07:00
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md: update code of conduct
2025-10-28 08:58:00 -07:00
CODEOWNERS
CODEOWNERS,.policy.yml: replace CODEOWNERS with a policy-bot policy
2026-06-26 10:30:59 -07:00
Dockerfile
Dockerfile: use our own Go toolchain, not the golang Docker image
2026-09-01 15:47:33 -07:00
Dockerfile.base
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
flake.lock
flake.nix: update for go 1.27
2026-08-28 12:47:04 -07:00
flake.nix
go.mod,wgengine/wgcfg: bump wg-go & configure staged global limit on iOS
2026-11-10 16:45:40 -08:00
flakehashes.json
go.toolchain.rev: bump Go toolchain
2026-11-10 18:14:49 -08:00
go.mod
go.toolchain.rev: bump Go toolchain
2026-11-10 18:14:49 -08:00
go.sum
go.mod,wgengine/wgcfg: bump wg-go & configure staged global limit on iOS
2026-11-10 16:45:40 -08:00
go.toolchain.branch
go.toolchain.branch: switch to Go 1.27
2026-08-27 09:52:15 -07:00
go.toolchain.next.branch
go.toolchain.next.{branch,rev}: start testing Go 1.27 (go1.27rc2)
2026-07-31 07:38:38 -07:00
go.toolchain.next.rev
go.toolchain.rev: bump Go toolchain
2026-11-10 18:14:49 -08:00
go.toolchain.rev
go.toolchain.rev: bump Go toolchain
2026-11-10 18:14:49 -08:00
go.toolchain.version
go.toolchain.rev: bump Go toolchain
2026-11-10 18:14:49 -08:00
gomod_test.go
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
header.txt
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
LICENSE
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
license_test.go
root: make TestLicenseHeaders skip files unknown to git
2026-08-04 10:47:35 +01:00
Makefile
go.mod: update golangci-lint to v2
2026-09-17 16:55:23 -07:00
PATENTS
Move Linux client & common packages into a public repo.
2020-02-09 09:32:57 -08:00
pkgdoc_test.go
cmd/vet/lowerell, drive/driveimpl: forbid variables named "l" or "I"
2026-05-04 14:03:28 -07:00
pull-toolchain.sh
tool/updateflakes, cmd/nardump: replace update-flake.sh with Go tool
2026-04-28 10:18:32 -07:00
README.md
go.toolchain.branch: switch to Go 1.27
2026-08-27 09:52:15 -07:00
SECURITY.md
Add a SECURITY.md for vulnerability reports.
2020-02-11 10:26:41 -08:00
shell.nix
go.mod,wgengine/wgcfg: bump wg-go & configure staged global limit on iOS
2026-11-10 16:45:40 -08:00
staticcheck.conf
staticcheck.conf: enable ST1000 to check package docs ( #20787 )
2026-08-08 13:02:06 -07:00
version-embed.go
cmd/printdep: add --next flag to use rc Go build hash instead
2026-01-27 14:49:56 -08:00
VERSION.txt
VERSION.txt: this is v1.105.0 ( #21600 )
2026-09-30 12:03:36 -07:00
version_tailscale_test.go
all: remove AUTHORS file and references to it
2026-01-23 15:49:45 -08:00
version_test.go
Dockerfile: use our own Go toolchain, not the golang Docker image
2026-09-01 15:47:33 -07:00