Brad Fitzpatrick
52c0cb12fb
stunner: return wrapped error (currently unused)
2020-03-12 11:21:19 -07:00
Brad Fitzpatrick
b4d02a251a
syncs: add new package for extra sync types
2020-03-12 11:13:33 -07:00
David Crawshaw
57f220656c
ipn: search for ErrStateNotExist with errors.Is
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-12 08:44:24 -04:00
Avery Pennarun
40c6f952c5
Merge branch 'master' of github.com:tailscale/tailscale into HEAD
...
* 'master' of github.com:tailscale/tailscale:
netcheck: fix data races for staggler STUN packets arriving after GetReport
wgengine/magicsock: add a pointer value for logging
netcheck: ignore IPv4 STUN failures if we saw at least one reply
netcheck: ignore IPv6 STUN failures
derp: add clients_replaced counter
version: bump OSS version datestamp.
2020-03-11 21:01:18 -04:00
Avery Pennarun
509247bf42
tailscale, tailscaled: update safesocket port number.
...
This makes them able to connect to each other on Windows.
2020-03-11 21:00:25 -04:00
Brad Fitzpatrick
afc3479d04
netcheck: fix data races for staggler STUN packets arriving after GetReport
...
Fixes #179
2020-03-11 15:35:12 -07:00
Brad Fitzpatrick
b3ddf51a15
wgengine/magicsock: add a pointer value for logging
...
Updates #109
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-11 15:12:19 -07:00
Brad Fitzpatrick
0d3f42e1d8
netcheck: ignore IPv4 STUN failures if we saw at least one reply
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-11 13:57:23 -07:00
Brad Fitzpatrick
ed7e088729
netcheck: ignore IPv6 STUN failures
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-11 12:44:59 -07:00
Brad Fitzpatrick
4fd29349b9
derp: add clients_replaced counter
...
Updates #109
2020-03-11 11:55:43 -07:00
David Anderson
b364a871bf
version: bump OSS version datestamp.
2020-03-11 10:47:37 -07:00
David Anderson
72d9e1d633
go.mod: bump wireguard-go version.
2020-03-11 10:32:50 -07:00
Brad Fitzpatrick
b0f8931d26
wgengine/magicsock: make a test signature a bit more explicit
2020-03-11 09:51:33 -07:00
David Crawshaw
7ec54e0064
wgengine/magicsock: remove TODO
...
The TODO above derphttp.NewClient suggests it does network I/O,
but the derphttp client connects lazily and so creating one is
very cheap.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-11 12:17:37 -04:00
David Crawshaw
af58cfc476
go.mod: bump wireguard-go version
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-11 11:29:14 -04:00
Brad Fitzpatrick
01b4bec33f
stunner: re-do how Stunner works
...
It used to make assumptions based on having Anycast IPs that are super
near. Now we're intentionally going to a bunch of different distant
IPs to measure latency.
Also, optimize how the hairpin detection works. No need to STUN on
that socket. Just use that separate socket for sending, once we know
the other UDP4 socket's endpoint. The trick is: make our test probe
also a STUN packet, so it fits through magicsock's existing STUN
routing.
This drops netcheck from ~5 seconds to ~250-500ms.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-11 08:08:48 -07:00
David Anderson
4affea2691
go.mod: bump wireguard-go version.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-10 18:00:37 -07:00
David Anderson
77af7e5436
wgengine/magicsock: mark test logfunc as a helper.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-10 18:00:37 -07:00
David Anderson
7eda3af034
wgengine/magicsock: clean up derp http servers on shutdown.
...
Failure to do this leads to fd exhaustion at -count=10000,
and increasingly poor execution north of -count=100.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-10 18:00:37 -07:00
David Anderson
d651715528
wgengine/magicsock: synchronize test STUN shutdown.
...
Failure to do so triggers either a data race or a panic
in the testing package, due to racey use of t.Logf.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-10 18:00:37 -07:00
David Anderson
86baf60bd4
wgengine/magicsock: synchronize epUpdate cleanup on shutdown.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-10 18:00:37 -07:00
Brad Fitzpatrick
023df9239e
Move linkstate boring change filtering to magicsock
...
So we can at least re-STUN on boring updates.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-10 12:50:03 -07:00
David Anderson
592fec7606
wgengine/magicsock: move device close to uncursed portion of test.
...
Device close used to suffer from deadlocks, but no longer.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-10 11:57:57 -07:00
Brad Fitzpatrick
a265d7cbff
wgengine/magicsock: in STUN-disabled test mode, let endpoint discovery proceed
2020-03-10 11:35:43 -07:00
Brad Fitzpatrick
5c1e443d34
wgengine/monitor: don't call LinkChange when interfaces look unchanged
...
Basically, don't trust the OS-level link monitor to only tell you
interesting things. Sanity check it.
Also, move the interfaces package into the net directory now that we
have it.
2020-03-10 11:03:19 -07:00
Brad Fitzpatrick
39c0ae1dba
derp/derpmap: new DERP config package, merge netcheck into magicsock more
...
Fixes #153
Updates #162
Updates #163
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-10 10:37:25 -07:00
Brad Fitzpatrick
bd0e20f351
net/dnscache: ignore annoying staticcheck check
2020-03-09 22:12:22 -07:00
Brad Fitzpatrick
d44325295e
net/dnscache: initialize the single Resolver more directly
2020-03-09 21:05:01 -07:00
Brad Fitzpatrick
d07146aafb
go.mod, go.sum: update
2020-03-09 21:01:08 -07:00
David Crawshaw
5f2a17482b
ipn: when enforcing defaults, set UsePacketFilter=true
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-09 14:58:20 -04:00
David Crawshaw
cac68fe102
net/dnscache: do not PreferGo on macOS/iOS
...
With this commit my iPhone can now DERP.
2020-03-09 14:20:09 -04:00
Brad Fitzpatrick
5d8001d0ad
derp: add varz for home moves
...
Updates #162
Updates #163 (maybe)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-09 11:09:27 -07:00
Brad Fitzpatrick
8f0fd01efd
net/dnscache: add copyright header to test
2020-03-09 11:07:31 -07:00
David Crawshaw
5a1ce4adae
net/dnscache: parse passed CIDR
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-09 13:11:35 -04:00
Brad Fitzpatrick
4800926006
wgengine/magicsock: add AddrSet appendDests+UpdateDst tests
2020-03-09 09:13:28 -07:00
David Crawshaw
e201f63230
magicsock: unskip tests that are reliable
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-08 09:29:37 -04:00
David Crawshaw
f5e0407e97
ipn: exercise logout in e2e test
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-08 09:03:27 -04:00
David Crawshaw
0f73070a57
wgengine: shut down wireguard on Close
...
This was (presumably) missing from wgengine because the
interactions between magicsock and wireguard-go meant that the
shutdown never worked. Now those are fixed, actually shut down.
Fixes occasional flake in expanded ipn/e2e_test.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-08 09:03:27 -04:00
David Crawshaw
d99498bee2
controlclient: set default TimeNow function
...
Panic on call to nil func found by expanded ipn/e2e_test.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-08 09:03:27 -04:00
David Crawshaw
1dee36a984
ipn: put e2e login section in its own subtest
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-08 09:03:27 -04:00
David Crawshaw
66505358c0
ipn: move e2e test skipping into subtests
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-08 09:03:07 -04:00
David Crawshaw
ce7f6b2df1
wgengine: have pinger use all single-IP routes
...
Fixes #139
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-08 07:09:38 -04:00
Martin Baillie
8ae3ba0cf5
wgengine: define default tunname for each platform
...
The device name "tailscale0" will be used for all platforms except for
OpenBSD where "tun" is enforced by the kernel. `CreateTUN()` in
`wireguard-go` will select the next available "tunX" device name on the
OpenBSD system.
Signed-off-by: Martin Baillie <martin@baillie.email>
2020-03-07 21:40:01 -08:00
David Anderson
bb93d7aaba
wgengine/magicsock: plumb logf throughout, and expose in Options.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-07 14:11:28 -08:00
Brad Fitzpatrick
f42b9b6c9a
wgengine/magicsock: don't discard UDP packet on UDP+DERP race
...
Fixes #155
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-07 14:09:06 -08:00
David Anderson
96e0f86263
go.mod: bump wireguard-go.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-06 23:38:02 -08:00
David Anderson
b9512edb7b
go.mod: bump wireguard-go version.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-06 20:49:31 -08:00
David Anderson
e3172ae267
wgengine/magicsock: uncurse TestDeviceStartStop, let CI run it.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-06 20:43:57 -08:00
David Anderson
9b802d338c
go.mod: pull in deadlock fix from tailscale/wireguard-go.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-06 20:43:38 -08:00
David Anderson
f265603110
wgengine/magicsock: fix data race in ReceiveIPv4.
...
The UDP reader goroutine was clobbering `n` and `err` from the
main goroutine, whose accesses are not synchronized the way `b` is.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-03-06 20:41:15 -08:00