tailscale/ipn/ipnlocal
Brad Fitzpatrick 3e34e721e8
Some checks failed
checklocks / checklocks (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
Dockerfile build / deploy (push) Has been cancelled
natlab-basic / EasyEasy (push) Has been cancelled
CI / gomod-cache (push) Has been cancelled
CI / fuzz (push) Has been cancelled
tailscale.com/cmd/vet / vet (push) Has been cancelled
CI / race-root-integration (1/4) (push) Has been cancelled
CI / race-root-integration (2/4) (push) Has been cancelled
CI / race-root-integration (3/4) (push) Has been cancelled
CI / race-root-integration (4/4) (push) Has been cancelled
CI / test (-race, amd64, 1/3) (push) Has been cancelled
CI / test (-race, amd64, 2/3) (push) Has been cancelled
CI / test (-race, amd64, 3/3) (push) Has been cancelled
CI / test (386) (push) Has been cancelled
CI / test (amd64) (push) Has been cancelled
CI / Windows (${{ matrix.name || matrix.shard}}) (win-bench, benchmarks) (push) Has been cancelled
CI / Windows (${{ matrix.name || matrix.shard}}) (win-shard-1-2, 1/2) (push) Has been cancelled
CI / Windows (${{ matrix.name || matrix.shard}}) (win-shard-2-2, 2/2) (push) Has been cancelled
CI / macos (push) Has been cancelled
CI / privileged (push) Has been cancelled
CI / vm (push) Has been cancelled
CI / cross (386, linux) (push) Has been cancelled
CI / cross (amd64, darwin) (push) Has been cancelled
CI / cross (amd64, freebsd) (push) Has been cancelled
CI / cross (amd64, openbsd) (push) Has been cancelled
CI / cross (amd64, windows) (push) Has been cancelled
CI / cross (arm, 5, linux) (push) Has been cancelled
CI / cross (arm, 7, linux) (push) Has been cancelled
CI / cross (arm64, darwin) (push) Has been cancelled
CI / cross (arm64, linux) (push) Has been cancelled
CI / cross (arm64, windows) (push) Has been cancelled
CI / cross (loong64, linux) (push) Has been cancelled
CI / ios (push) Has been cancelled
CI / crossmin (amd64, illumos) (push) Has been cancelled
CI / crossmin (amd64, plan9) (push) Has been cancelled
CI / crossmin (amd64, solaris) (push) Has been cancelled
CI / crossmin (ppc64, aix) (push) Has been cancelled
CI / android (push) Has been cancelled
CI / wasm (push) Has been cancelled
CI / tailscale_go (push) Has been cancelled
CI / depaware (push) Has been cancelled
CI / go_generate (push) Has been cancelled
CI / make_tidy (push) Has been cancelled
CI / licenses (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--with-tags-all=darwin, arm64, darwin, macOS) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--with-tags-all=linux, amd64, linux, Linux) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--with-tags-all=windows, amd64, windows, Windows) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=1/4, amd64, linux, Portable (1/4)) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=2/4, amd64, linux, Portable (2/4)) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=3/4, amd64, linux, Portable (3/4)) (push) Has been cancelled
CI / staticcheck (${{ matrix.name }}) (--without-tags-any=windows,darwin,linux --shard=4/4, amd64, linux, Portable (4/4)) (push) Has been cancelled
CI / notify_slack (push) Has been cancelled
CI / merge_blocker (push) Has been cancelled
CI / check_mergeability_strict (push) Has been cancelled
CI / check_mergeability (push) Has been cancelled
tsnet: add opt-in SSH support (Server.ListenSSH)
This adds tsnet.Server.ListenSSH which, if the SSH feature is linked,
returns a net.Listener whose Accept yields *tailssh.Session values (as
net.Conn). This lets tsnet apps accept incoming SSH connections to
implement custom TUI applications.

Basic apps can use net.Conn directly (Read/Write/Close). Rich apps
import ssh/tailssh and type-assert for peer identity, PTY, signals,
etc. If feature/ssh isn't imported, ListenSSH returns an error.

Includes a demo guess-the-number game in tsnet/example/ssh-game.

Updates tailscale/corp#37839

Change-Id: I4e7c3c96afb030cdf4da8f2d8b2253820628129a
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2026-05-30 14:17:50 -07:00
..
netmapcache ipn/ipnlocal/netmapcache: add UpdateSelfOnly method (#19818) 2026-05-20 16:29:04 -07:00
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 2023-02-07 14:34:04 -08:00
breaktcp_darwin.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
breaktcp_linux.go all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
bus_test.go ipn/ipnlocal, control/controlclient: process node adds/removes in constant time 2026-05-21 09:26:19 -07:00
bus.go ipn/ipnlocal, control/controlclient: process node adds/removes in constant time 2026-05-21 09:26:19 -07:00
c2n_pprof.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
c2n_test.go ipn/ipnlocal: add health.Tracker to tests where it was warning in CI 2026-04-05 20:20:07 -07:00
c2n.go ipn/ipnlocal,tailcfg: add /debug/tka c2n endpoint (#19198) 2026-04-20 16:00:03 +01:00
captiveportal.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cert_disabled.go ipnlocal: try ACME TLS-ALPN for Funnel renewals 2026-05-27 09:30:23 -07:00
cert_test.go ipn/ipnlocal: use ACME ALPN for authorized Funnel non-CertDomain domains 2026-05-28 13:33:45 -07:00
cert.go ipn/ipnlocal: use ACME ALPN for authorized Funnel non-CertDomain domains 2026-05-28 13:33:45 -07:00
diskcache_test.go ipn/ipnlocal/netmapcache: add UpdateSelfOnly method (#19818) 2026-05-20 16:29:04 -07:00
diskcache.go ipn/ipnlocal/netmapcache: add UpdateSelfOnly method (#19818) 2026-05-20 16:29:04 -07:00
dnsconfig_test.go appc,feature/conn25: use custom scheme resolvers for conn25 2026-05-29 12:23:47 -07:00
drive_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
drive_tomove.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
drive.go ipnlocal/drive: reduce noisey per-peer remote logs (#19493) 2026-04-24 08:26:33 -07:00
expiry_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
expiry.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
extension_host_test.go ipn/{ipnext,ipnlocal}: expose authReconfig in ipnext.Host as AuthReconfigAsync 2026-03-20 17:29:11 -04:00
extension_host.go ipn/ipnlocal: debounce extra enqueues in ExtensionHost.AuthReconfigAsync 2026-03-25 09:11:15 -04:00
hwattest.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
local_test.go ipn/store: make WriteState(id, nil) delete key instead of adding nil entry (#19920) 2026-05-29 11:22:14 -07:00
local.go tsnet: add opt-in SSH support (Server.ListenSSH) 2026-05-30 14:17:50 -07:00
loglines_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
netstack.go types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
node_backend_test.go types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
node_backend.go appc,feature/conn25: use custom scheme resolvers for conn25 2026-05-29 12:23:47 -07:00
peerapi_drive.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
peerapi_macios_ext.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
peerapi_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
peerapi.go ipn/ipnlocal, all: split LocalBackend.NetMap into NetMapNoPeers / NetMapWithPeers 2026-04-30 11:14:06 -07:00
prefs_metrics.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles_notwindows.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles_test.go ipn/store: make WriteState(id, nil) delete key instead of adding nil entry (#19920) 2026-05-29 11:22:14 -07:00
profiles_windows.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
profiles.go tailcfg: reintroduce UserProfile.Groups 2026-03-09 11:08:45 +00:00
serve_disabled.go ipnlocal: try ACME TLS-ALPN for Funnel renewals 2026-05-27 09:30:23 -07:00
serve_test.go ipn/ipnlocal: add HTTP/2 Content-Type tests for serve reverse proxy (#19905) 2026-05-28 09:46:36 -07:00
serve_unix_test.go cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
serve.go ipnlocal: try ACME TLS-ALPN for Funnel renewals 2026-05-27 09:30:23 -07:00
state_test.go cmd/containerboot: track peers from IPN bus updates, stop using netmap.NetworkMap 2026-05-27 14:12:48 -07:00
tailnet-lock_test.go all: remove network lock references from private method names 2026-05-28 18:00:36 +01:00
tailnet-lock.go all: remove network lock references from private method names 2026-05-28 18:00:36 +01:00
tailnetlock_disabled.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
web_client_stub.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
web_client.go ipn/ipnlocal, all: split LocalBackend.NetMap into NetMapNoPeers / NetMapWithPeers 2026-04-30 11:14:06 -07:00