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
David Crawshaw d417be6a4b controlclinet: clone filter.MatchAllowAll
This avoids a non-obvious data race, where the JSON decoder ends
up creating do-nothing writes into global variables.

	==================
	WARNING: DATA RACE
	Write at 0x0000011e1860 by goroutine 201:
	  tailscale.com/wgengine/packet.(*IP).UnmarshalJSON()
	      /home/crawshaw/repo/corp/oss/wgengine/packet/packet.go:83 +0x2d9
	  encoding/json.(*decodeState).literalStore()
	      /home/crawshaw/go/go/src/encoding/json/decode.go:877 +0x445e
	...
	  encoding/json.Unmarshal()
	      /home/crawshaw/go/go/src/encoding/json/decode.go:107 +0x1de
	  tailscale.com/control/controlclient.(*Direct).decodeMsg()
	      /home/crawshaw/repo/corp/oss/control/controlclient/direct.go:615 +0x1ab
	  tailscale.com/control/controlclient.(*Direct).PollNetMap()
	      /home/crawshaw/repo/corp/oss/control/controlclient/direct.go:525 +0x1053
	  tailscale.com/control/controlclient.(*Client).mapRoutine()
	      /home/crawshaw/repo/corp/oss/control/controlclient/auto.go:428 +0x3a6
	Previous read at 0x0000011e1860 by goroutine 86:
	  tailscale.com/wgengine/filter.matchIPWithoutPorts()
	      /home/crawshaw/repo/corp/oss/wgengine/filter/match.go:108 +0x91
	  tailscale.com/wgengine/filter.(*Filter).runIn()
	      /home/crawshaw/repo/corp/oss/wgengine/filter/filter.go:147 +0x3c6
	  tailscale.com/wgengine/filter.(*Filter).RunIn()
	      /home/crawshaw/repo/corp/oss/wgengine/filter/filter.go:127 +0xb0
	  tailscale.com/wgengine.(*userspaceEngine).SetFilter.func1()
	      /home/crawshaw/repo/corp/oss/wgengine/userspace.go:390 +0xfc
	  github.com/tailscale/wireguard-go/device.(*Device).RoutineDecryption()
	      /home/crawshaw/repo/corp/wireguard-go/device/receive.go:295 +0xa1f

For #112

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
5 years ago
..
filter controlclinet: clone filter.MatchAllowAll 5 years ago
magicsock wgengine/magicsock: reset favorite address on handshakes 5 years ago
monitor wgengine/monitor: use RTMGRP_* consts from x/sys/unix 5 years ago
packet wgengine/packet: fix minor lint errors. 5 years ago
winnet Move Linux client & common packages into a public repo. 5 years ago
faketun.go wgengine: properly clean up freebsd routes and interfaces on close 5 years ago
ifconfig_windows.go wgengine: fix build on linux/freebsd/openbsd/windows 5 years ago
router_darwin.go wgengine: move link monitor to be owned by the engine, not the router 5 years ago
router_darwin_support.go wgengine: make SetRoutesFunc less appealing to use. 5 years ago
router_default.go wgengine: simplify, change some signatures 5 years ago
router_fake.go wgengine: move link monitor to be owned by the engine, not the router 5 years ago
router_freebsd.go wgengine: properly clean up freebsd routes and interfaces on close 5 years ago
router_linux.go wgengine: resolv.conf spelling corrections 5 years ago
router_openbsd.go wgengine: add OpenBSD router DNS update handling 5 years ago
router_windows.go wgengine: move link monitor to be owned by the engine, not the router 5 years ago
rusage.go Move "logger" package to under types, now that we have it. 5 years ago
rusage_nowindows.go wgengine: flesh out some docs 5 years ago
rusage_windows.go Move Linux client & common packages into a public repo. 5 years ago
userspace.go wgengine, magicsock: fix SetPrivateKey data race 5 years ago
watchdog.go wgengine: flesh out some docs 5 years ago
watchdog_test.go wgengine: simplify, change some signatures 5 years ago
wgengine.go wgengine: update for wgcfg changes 5 years ago