tailscale/cmd/tailscaled
Aaron Klotz 033bd94d4c cmd/tailscaled, wgengine/router: use wingoes/com for COM initialization instead of go-ole
This patch removes the crappy, half-backed COM initialization used by `go-ole`
and replaces that with the `StartRuntime` function from `wingoes`, a library I
have started which, among other things, initializes COM properly.

In particular, we should always be initializing COM to use the multithreaded
apartment. Every single OS thread in the process becomes implicitly initialized
as part of the MTA, so we do not need to concern ourselves as to whether or not
any particular OS thread has initialized COM. Furthermore, we no longer need to
lock the OS thread when calling methods on COM interfaces.

Single-threaded apartments are designed solely for working with Win32 threads
that have a message pump; any other use of the STA is invalid.

Fixes https://github.com/tailscale/tailscale/issues/3137

Signed-off-by: Aaron Klotz <aaron@tailscale.com>
2022-11-24 14:52:23 -06:00
..
childproc cmd/tailscaled/childproc: add be-child registration mechanism 2022-02-24 14:20:20 -08:00
debug.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
depaware.txt cmd/tailscaled, wgengine/router: use wingoes/com for COM initialization instead of go-ole 2022-11-24 14:52:23 -06:00
generate.go cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
install_darwin.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
install_windows.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
manifest_windows_386.syso cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
manifest_windows_amd64.syso cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
manifest_windows_arm64.syso cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
manifest_windows_arm.syso cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
proxy.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
required_version.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
ssh.go ssh/tailssh: add Tailscale SSH (server) support on FreeBSD 2022-11-10 20:25:23 -08:00
tailscaled_bird.go cmd/tailscaled, net/tstun: add build tags to omit BIRD and TAP 2022-11-07 11:13:14 -05:00
tailscaled_notwindows.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
tailscaled_test.go cmd/tailscaled: add a no-op test for profiling init-time memory allocs 2022-02-24 14:58:12 -08:00
tailscaled_windows.go cmd/tailscaled, wgengine/router: use wingoes/com for COM initialization instead of go-ole 2022-11-24 14:52:23 -06:00
tailscaled.defaults cmd/tailscaled: rename relaynode reference in defaults file comment 2020-03-13 14:38:04 -07:00
tailscaled.go envknob: add GOOS func 2022-11-23 18:35:43 -08:00
tailscaled.openrc tstest/integration/vms: use an in-process logcatcher (#2360) 2021-07-08 14:39:45 -04:00
tailscaled.service cmd/tailscaled: use explicit equal sign in --port=$PORT in tailscaled.service 2022-09-22 11:54:22 -07:00
windows-manifest.xml cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
with_cli.go all: remove old +build tags 2022-11-04 07:25:42 -07:00