tailscale/wgengine
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
..
bench all: fix more resource leaks found by staticmajor 2022-10-10 20:46:56 -07:00
filter all: fix spelling mistakes 2022-09-29 13:36:13 -07:00
magicsock wgengine/magicsock: ignore pre-disco (pre-0.100) peers 2022-11-18 17:52:08 -08:00
monitor all: remove old +build tags 2022-11-04 07:25:42 -07:00
netlog wgengine/netlog: preserve Tailscale addresses for exit traffic (#6165) 2022-11-02 14:25:31 -07:00
netstack ipn/ipnlocal: call checkPrefs in Start too 2022-11-22 15:13:00 +05:00
router cmd/tailscaled, wgengine/router: use wingoes/com for COM initialization instead of go-ole 2022-11-24 14:52:23 -06:00
wgcfg wgengine/netlog: embed the StableNodeID of the authoring node (#6105) 2022-10-28 10:09:30 -07:00
wgint go.mod, wgengine/wgint: bump wireguard-go 2022-09-06 11:34:30 -07:00
wglog all: use syncs.AtomicValue 2022-08-04 11:52:16 -07:00
winnet all: remove old +build tags 2022-11-04 07:25:42 -07:00
mem_ios.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 2021-05-25 13:18:21 -07:00
pendopen.go wgengine: remove all peer status from open timeout diagnostics 2022-08-29 15:54:33 -07:00
userspace.go wgengine: respect --no-logs-no-support flag for network logging (#6172) 2022-11-02 12:57:04 -07:00
userspace_ext_test.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 2021-05-25 13:18:21 -07:00
userspace_test.go all: convert more code to use net/netip directly 2022-07-25 21:53:49 -07:00
watchdog.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
watchdog_js.go wasm: drop pprof dependency 2022-06-07 12:16:16 -07:00
watchdog_test.go wgengine: remove all peer status from open timeout diagnostics 2022-08-29 15:54:33 -07:00
wgengine.go wgengine: fix typo in Engine.PeerForIP (#5912) 2022-10-12 14:14:22 -07:00