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/router
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
..
callback.go wgengine/router: avoid unncessary routing configuration changes 2 years ago
ifconfig_windows.go cmd/tailscaled, wgengine/router: use wingoes/com for COM initialization instead of go-ole 2 years ago
ifconfig_windows_test.go go.mod: bump wireguard/windows, which moves to using net/netip 2 years ago
router.go all: convert more code to use net/netip directly 2 years ago
router_darwin.go wgengine/router: take a link monitor 3 years ago
router_default.go all: remove old +build tags 2 years ago
router_fake.go wgengine: pass in an explicit router.Router, rather than a generator. 4 years ago
router_freebsd.go wgengine/router: take a link monitor 3 years ago
router_linux.go wgengine/router: [linux] add before deleting interface addrs 2 years ago
router_linux_test.go wgengine/router: [linux] add before deleting interface addrs 2 years ago
router_openbsd.go all: convert more code to use net/netip directly 2 years ago
router_test.go all: convert more code to use net/netip directly 2 years ago
router_userspace_bsd.go wgengine/router: [bsd/darwin] remove and readd routes on profile change 2 years ago
router_windows.go all: fix spelling mistakes 2 years ago
runner.go all: remove old +build tags 2 years ago