You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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>
2 years ago
..
bench all: fix more resource leaks found by staticmajor 2 years ago
filter all: fix spelling mistakes 2 years ago
magicsock wgengine/magicsock: ignore pre-disco (pre-0.100) peers 2 years ago
monitor all: remove old +build tags 2 years ago
netlog wgengine/netlog: preserve Tailscale addresses for exit traffic (#6165) 2 years ago
netstack ipn/ipnlocal: call checkPrefs in Start too 2 years ago
router cmd/tailscaled, wgengine/router: use wingoes/com for COM initialization instead of go-ole 2 years ago
wgcfg wgengine/netlog: embed the StableNodeID of the authoring node (#6105) 2 years ago
wgint go.mod, wgengine/wgint: bump wireguard-go 2 years ago
wglog all: use syncs.AtomicValue 2 years ago
winnet all: remove old +build tags 2 years ago
mem_ios.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 3 years ago
pendopen.go wgengine: remove all peer status from open timeout diagnostics 2 years ago
userspace.go wgengine: respect --no-logs-no-support flag for network logging (#6172) 2 years ago
userspace_ext_test.go go.mod: upgrade wireguard-windows, de-fork wireguard-go 3 years ago
userspace_test.go all: convert more code to use net/netip directly 2 years ago
watchdog.go all: remove old +build tags 2 years ago
watchdog_js.go wasm: drop pprof dependency 2 years ago
watchdog_test.go wgengine: remove all peer status from open timeout diagnostics 2 years ago
wgengine.go wgengine: fix typo in Engine.PeerForIP (#5912) 2 years ago