37903a9056
wgengine/magicsock: fix occasional deadlock on Conn.Close on c.derpStarted
...
The deadlock was:
* Conn.Close was called, which acquired c.mu
* Then this goroutine scheduled:
if firstDerp {
startGate = c.derpStarted
go func() {
dc.Connect(ctx)
close(c.derpStarted)
}()
}
* The getRegion hook for that derphttp.Client then ran, which also
tries to acquire c.mu.
This change makes that hook first see if we're already in a closing
state and then it can pretend that region doesn't exist.
2020-07-27 12:27:10 -07:00
bca9fe35ba
logtail: return correct write size from logger.Write
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-07-27 11:06:41 -07:00
38b0c3eea2
version: new week, new version
2020-07-27 10:20:58 -07:00
43e2efe441
go mod tidy
2020-07-27 10:20:30 -07:00
fe68841dc7
wgengine/magicsock: log better with less spam on transition to stopped state
...
Required a minor test update too, which now needs a private key to get far
enough to test the thing being tested.
2020-07-27 10:19:17 -07:00
69f3ceeb7c
derp/derphttp: don't return all nil from dialRegion when STUNOnly nodes
2020-07-27 10:10:10 -07:00
990e2f1ae9
tailcfg: generate some Clone methods
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com >
2020-07-27 11:08:09 +10:00
961b9c8abf
cmd/cloner: tool to generate Clone methods
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com >
2020-07-27 11:08:09 +10:00
e298327ba8
wgengine/magicsock: remove overkill, slow reflect.DeepEqual of NetworkMap
...
No need to allocate or compare all the fields we don't care about.
2020-07-25 19:37:08 -07:00
be3ca5cbfd
control/controlclient: remove unused, slow, often-not-what-you-want NetworkMap.Equal
2020-07-25 19:36:39 -07:00
4970e771ab
wgengine: add debug knob to disable the watchdog during debugging
...
It launches goroutines and interferes with panic-based debugging,
obscuring stacks.
2020-07-25 12:59:53 -07:00
3669296cef
wgengine/magicsock: refactor twoDevicePing to make stack construction cleaner.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-24 15:12:15 -07:00
0a42b0a726
ipn: add OSVersion, DeviceModel fields to Prefs and propagate to Hostinfos
...
Needed for Android.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-07-24 14:12:29 -07:00
16a9cfe2f4
wgengine: configure wireguard peers lazily, as needed
...
wireguard-go uses 3 goroutines per peer (with reasonably large stacks
& buffers).
Rather than tell wireguard-go about all our peers, only tell it about
peers we're actively communicating with. That means we need hooks into
magicsock's packet receiving path and tstun's packet sending path to
lazily create a wireguard peer on demand from the network map.
This frees up lots of memory for iOS (where we have almost nothing
left for larger domains with many users).
We should ideally do this in wireguard-go itself one day, but that'd
be a pretty big change.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-07-24 12:50:15 -07:00
5066b824a6
wgengine/magicsock: don't log about disco ping timeouts if we have a working address
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-07-24 11:21:50 -07:00
648268192b
go.mod: bump wireguard-go
2020-07-24 08:54:17 -07:00
a89d610a3d
wgengine/tstun: move sync.Pool to package global
...
sync.Pools should almost always be packate globals, even though in this
case we only have exactly 1 TUN device anyway, so it matters less.
Still, it's unusual to see a Pool that's not a package global, so move it.
2020-07-24 08:29:36 -07:00
318751c486
cmd/tailscaled: always flush logs properly
...
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com >
2020-07-23 19:08:17 -04:00
4957360ecd
cmd/tailscale: rename use-dns to accept-dns
...
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com >
2020-07-23 16:09:33 -04:00
dd4e06f383
cmd/tailscale: add corpDNS flag
...
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com >
2020-07-23 15:28:53 -04:00
c53ab3111d
wgengine/router: support legacy resolvconf
...
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com >
2020-07-23 15:01:46 -04:00
05a79d79ae
control/controlclient: rewrite, test NetworkMap.ConciseDiffFrom
...
It stood out a lot in hello.ipn.dev's profiles for generating a lot of
garbage (and thus GC CPU).
2020-07-23 10:50:06 -07:00
48fc9026e9
tailcfg: optimize Node.Equal allocs a bit
...
Noticed while working on something else.
2020-07-23 10:47:49 -07:00
3b0514ef6d
control/controlclient: rename uflags, give it a type, remove dead code
2020-07-23 08:38:14 -07:00
32ecdea157
control/controlclient: generate wireguard config w/o WgQuick text indirection
2020-07-23 08:30:09 -07:00
2545575dd5
cmd/tailscale: default to not reporting daemon version
...
That's what I meant to do when I added "tailscale version" but
apparently I didn't.
2020-07-22 14:05:51 -07:00
189d86cce5
wgengine/router: don't use 88 or 8888 as table/rule numbers.
...
We originally picked those numbers somewhat at random, but with the idea
that 8 is a traditionally lucky number in Chinese culture. Unfortunately,
"88" is also neo-nazi shorthand language.
Use 52 instead, because those are the digits above the letters
"TS" (tailscale) on a qwerty keyboard, so we're unlikely to collide with
other users. 5, 2 and 52 are also pleasantly culturally meaningless.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-22 11:59:54 -07:00
218de6d530
ipn: load hostname in Start.
...
This prevents hostname being forced to os.Hostname despite override
when control is contacted for the first time after starting tailscaled.
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com >
2020-07-22 13:37:41 -04:00
de11f90d9d
ipn: remove unused parameter to func LoadPrefs, fix godoc subject
2020-07-22 10:35:35 -07:00
972a42cb33
wgengine/router: fix router_test to match the new marks.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-22 01:31:49 +00:00
d60917c0f1
wgengine/router: switch packet marks to avoid conflict with Weave Net.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-22 01:24:46 +00:00
f26b409bd5
tempfork: add lite fork of net/http/pprof w/o html/template or reflect
2020-07-21 16:17:03 -07:00
6095a9b423
cmd/tailscale: add "version" subcommand
...
Fixes #448
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-07-21 12:23:33 -07:00
f745e1c058
version: new week, new version
2020-07-20 20:55:47 -07:00
ca2428ecaf
tailcfg: add Hostinfo.OSVersion, DeviceModel
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-07-20 16:10:06 -07:00
d8e67ca2ab
safesocket: gofmt
...
gofmt differences between versions :(
2020-07-20 14:40:19 -07:00
f562c35c0d
safesocket: support connecting to Mac TCP server from within App Sandbox
2020-07-20 14:23:50 -07:00
f267a7396f
metrics: add LabelMap.GetFloat
2020-07-19 12:31:12 -07:00
c06d2a8513
wgengine/magicsock: fix typo in comment
2020-07-18 13:57:26 -07:00
bf195cd3d8
wgengine/magicsock: reduce log verbosity of discovery messages
...
Don't log heartbeat pings & pongs. Track the reason for pings and then
only log the ping/pong traffic if it was for initial path discovery.
2020-07-18 13:54:00 -07:00
7cf50f6c84
go.sum: update
2020-07-18 13:43:11 -07:00
3efc29d39d
go.mod: bump netaddr.
...
Closes #567 .
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com >
2020-07-18 04:28:03 -04:00
a3e7252ce6
wgengine/router: use better NetworkManager API
...
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com >
2020-07-18 04:03:45 -04:00
5df6be9d38
Use LittleEndian for correct byte order on DNS IPs
...
Nameserver IP 10.11.12.13 would otherwise get written to resolv.conf as 13.12.11.10, as was happening on my client.
Signed-off-by: Eduardo Kienetz <eduardo@kienetz.com >
2020-07-17 23:34:28 -07:00
52969bdfb0
derp: fix atomic padding on 32-bit again
...
Broken by earlier OnlyDisco addition.
2020-07-16 13:38:21 -07:00
a6559a8924
wgengine/magicsock: run test DERP in mode where only disco packets allowed
...
So we don't accidentally pass a NAT traversal test by having DERP pick up our slack
when we really just wanted DERP as an OOB messaging channel.
2020-07-16 12:58:35 -07:00
75e1cc1dd5
github/workflows: add go vet ./... step
2020-07-16 09:15:09 -07:00
10ac066013
all: fix vet warnings
2020-07-16 08:39:38 -07:00
d74c9aa95b
wgengine/magicsock: update comment, fix earlier commit
...
891898525c
had a continue that meant the didCopy synchronization never ran.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-07-16 08:29:38 -07:00
c976264bd1
wgengine/magicsock: gofmt
2020-07-16 08:15:27 -07:00