Josh Bleecher Snyder
a6cad71fb2
go.mod: upgrade staticcheck to 0.1.0
...
Also run go.mod and fix some staticcheck warnings.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-12-14 14:01:29 -08:00
Brad Fitzpatrick
a0a8b9d76a
control/controlclient: don't spin when starting up when node key is expired
...
Fixes #1018
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-12-14 11:51:04 -08:00
Smitty
b895bf853a
Require at least Go 1.15
...
This was actually required before this commit, this just updates
go.mod with that fact.
Signed-off-by: Smitty <me@smitop.com>
2020-12-13 16:36:25 -08:00
Smitty
8a57f920ae
Remove unused .gitignore lines
...
These ignore built files that don't exist anymore, and just serve
to clutter up the .gitignore file. (I was initially confused when
I saw those lines, since I (correctly) thought that the only
Tailscale binaries were tailscale and tailscaled):
- taillogin was removed in d052586
- relaynode was removed in a56e853
Signed-off-by: Smitty <me@smitop.com>
2020-12-12 16:11:58 -08:00
Josh Bleecher Snyder
6db9c4a173
wgenginer/router/dns: use constant from golang.org/x/sys/windows
...
Made available in https://golang.org/cl/277153
2020-12-10 17:23:01 -08:00
Aleksandar Pesic
0dc295a640
Isolate WireGuard code into a separate file with appropriate copyright info in header.
...
Signed-off-by: Aleksandar Pesic <peske.nis@gmail.com>
2020-12-11 01:08:41 +01:00
Aleksandar Pesic
d854fe95d2
Trivial change in function description.
...
Signed-off-by: Aleksandar Pesic <peske.nis@gmail.com>
2020-12-11 00:55:37 +01:00
Aleksandar Pesic
4749a96a5b
Update depaware.txt files.
...
Signed-off-by: Aleksandar Pesic <peske.nis@gmail.com>
2020-12-11 00:45:31 +01:00
Aleksandar Pesic
338fd44657
Replace registry-access code, update wireguard-go and x/sys/windows.
...
Signed-off-by: Aleksandar Pesic <peske.nis@gmail.com>
2020-12-11 00:37:24 +01:00
Aleksandar Pesic
274d32d0aa
Prepare for the new wireguard-go API.
...
Signed-off-by: Aleksandar Pesic <peske.nis@gmail.com>
2020-12-11 00:08:28 +01:00
Adrian Dewhurst
943860fde7
version: relax git detection logic (again)
...
This is a repeat of commit 3aa68cd397
which was lost in a rework of version.sh.
git worktrees have a .git file rather than a .git directory, so building
in a worktree caused version.sh to generate an error.
Signed-off-by: Adrian Dewhurst <adrian@tailscale.com>
2020-12-09 21:55:41 -05:00
Brad Fitzpatrick
bce865b61b
logpolicy: migrate from x/crypto/ssh/terminal to x/term
2020-12-09 15:28:31 -08:00
David Anderson
57cd7738c2
tsweb: add an endpoint to manually trigger a GC.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-12-08 16:49:42 -08:00
Brad Fitzpatrick
9cb6ee3777
go.mod, go.sum: update
2020-12-08 15:23:56 -08:00
Brad Fitzpatrick
08f94b3b50
net/netcheck: fix offset of unspecified address in PCP request packet
...
Fixes #810
2020-12-08 15:22:26 -08:00
Brad Fitzpatrick
442d1873ec
go.mod: bump tailscale/wireguard-go
2020-12-07 14:02:05 -08:00
Brad Fitzpatrick
19c2c6403d
Update go.sum
2020-12-07 14:00:53 -08:00
Brad Fitzpatrick
b3c7b631c2
tailcfg, control/controlclient: make nil PacketFilter mean unchanged (mapver 6)
...
After mapver 5's incremental netmap updates & user profiles, much of
the remaining bandwidth for streamed MapResponses were redundant,
unchanged PacketFilters. So make MapRequest.Version 6 mean that nil
means unchanged from the previous value.
2020-12-07 09:17:42 -08:00
Brad Fitzpatrick
05e5233e07
net/netcheck: don't send flood of PCP unmap requests to router
...
Updates #810
2020-12-06 19:46:11 -08:00
Brad Fitzpatrick
9503be083d
tailcfg: update comments a bit
2020-12-03 12:16:10 -08:00
Brad Fitzpatrick
88179121e3
version: bump date
2020-12-03 12:08:07 -08:00
Brad Fitzpatrick
7b92f8e718
wgengine/magicsock: add start of magicsock benchmarks (Conn.ReceiveIPv4 for now)
...
And only single-threaded for now. Will get fancier later.
Updates #414
2020-12-02 20:26:54 -08:00
Brad Fitzpatrick
713cbe84c1
wgengine/magicsock: use net.JoinHostPort when host might have colons (udp6)
...
Only affected tests. (where it just generated log spam)
2020-12-02 20:19:28 -08:00
David Anderson
be6fe393c5
wgengine: don't try pinging IPv6 addresses in legacy pinger.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-12-01 20:09:32 -08:00
David Anderson
dfbde3d3aa
ipn: pass through the prefix length from control.
...
Control sets this to /32 for IPv4 and /128 for IPv6.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-12-01 20:09:16 -08:00
David Anderson
4c8ccd6dd6
tailcfg: document new debug flag.
2020-12-01 18:17:09 -08:00
Brad Fitzpatrick
c0af7deb86
tailcfg, cmd/tailscale: add Hostinfo.ShareeNode, hide in "tailscale status"
2020-12-01 15:29:18 -08:00
Brad Fitzpatrick
ab482118ad
tailcfg: add some missing json omitempty
...
Noticed these in MapResponses to clients.
MachineAuthorized was set true, but once we fix the coordination server
to zero out that field, then it can be omittted.
2020-11-25 10:27:01 -08:00
Dmytro Tananayskiy
c431382720
Fix receiver in order to be consistent: syncs.WaitGroupChan
...
Signed-off-by: Dmytro Tananayskiy <dmitriyminer@gmail.com>
2020-11-24 17:20:34 -08:00
Josh Bleecher Snyder
3a7402aa2d
logtail: help the server be more efficient
...
Add content length hints to headers.
The server can use these hints to more efficiently select buffers.
Stop attempting to compress tiny requests.
The bandwidth savings are negligible (and sometimes negative!),
and it makes extra work for the server.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-11-24 12:00:32 -08:00
Brad Fitzpatrick
cd6099113f
ipn: add a comment about skipping files with null bytes
...
Updates #954
2020-11-24 11:07:49 -08:00
Alex Brainman
72e082aaf5
ipn: make LoadPrefs return os.ErrNotExist when reading corrupted files
...
It appears some users have corrupted pref.conf files. Have LoadPrefs
treat these files as non-existent. This way tailscale will make user
login, and not crash.
Fixes #954
Signed-off-by: Alex Brainman <alex.brainman@gmail.com>
2020-11-24 11:05:42 -08:00
David Crawshaw
2c48b4ee14
tailcfg: remove outdated comments about Clone methods
...
The cloner tool adds static checks that the Clone methods are up to
date, so failing to update Clone causes a compiler error.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-11-24 13:16:21 -05:00
Sonia Appasamy
0710fca0cd
tailcfg: include ShieldsUp in HostInfo
2020-11-24 10:51:13 -05:00
Josh Bleecher Snyder
aa9d7f4665
tstime: add Parse3339B, for byte slices
...
Use go4.org/mem for memory safety.
A slight performance hit, but a huge performance win
for clients who start with a []byte.
The perf hit is due largely to the MapHash call, which adds ~25ns.
That is necessary to keep the fast path allocation-free.
name old time/op new time/op delta
GoParse3339/Z-8 281ns ± 1% 283ns ± 2% ~ (p=0.366 n=9+9)
GoParse3339/TZ-8 509ns ± 0% 510ns ± 1% ~ (p=0.059 n=9+9)
GoParse3339InLocation-8 330ns ± 1% 330ns ± 0% ~ (p=0.802 n=10+6)
Parse3339/Z-8 69.3ns ± 1% 74.4ns ± 1% +7.45% (p=0.000 n=9+10)
Parse3339/TZ-8 110ns ± 1% 140ns ± 3% +27.42% (p=0.000 n=9+10)
ParseInt-8 8.20ns ± 1% 8.17ns ± 1% ~ (p=0.452 n=9+9)
name old alloc/op new alloc/op delta
GoParse3339/Z-8 0.00B 0.00B ~ (all equal)
GoParse3339/TZ-8 160B ± 0% 160B ± 0% ~ (all equal)
GoParse3339InLocation-8 0.00B 0.00B ~ (all equal)
Parse3339/Z-8 0.00B 0.00B ~ (all equal)
Parse3339/TZ-8 0.00B 0.00B ~ (all equal)
name old allocs/op new allocs/op delta
GoParse3339/Z-8 0.00 0.00 ~ (all equal)
GoParse3339/TZ-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
GoParse3339InLocation-8 0.00 0.00 ~ (all equal)
Parse3339/Z-8 0.00 0.00 ~ (all equal)
Parse3339/TZ-8 0.00 0.00 ~ (all equal)
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-11-19 14:47:11 -08:00
Josh Bleecher Snyder
a5dd0bcb09
util/jsonutil: new package
...
The cornerstone API is a more memory-efficient Unmarshal.
The savings come from re-using a json.Decoder.
BenchmarkUnmarshal-8 4016418 288 ns/op 8 B/op 1 allocs/op
BenchmarkStdUnmarshal-8 4189261 283 ns/op 184 B/op 2 allocs/op
It also includes a Bytes type to reduce allocations
when unmarshalling a non-hex-encoded JSON string into a []byte.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-11-19 13:58:35 -08:00
Josh Bleecher Snyder
b65eee0745
util/lineread: add docs to Reader
...
In particular, point out how to stop reading
and detect it on the other side.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-11-19 12:14:58 -08:00
Josh Bleecher Snyder
1ebbaaaebb
net/interfaces: make syscall and netstat agree when multiple gateways are present
...
likelyHomeRouterIPDarwinSyscall iterates through the list of routes,
looking for a private gateway, returning the first one it finds.
likelyHomeRouterIPDarwinExec does the same thing,
except that it returns the last one it finds.
As a result, when there are multiple gateways,
TestLikelyHomeRouterIPSyscallExec fails.
(At least, I think that that is what is happening;
I am going inferring from observed behavior.)
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-11-19 12:14:58 -08:00
Brad Fitzpatrick
eccc167733
wgengine/monitor: fix memory corruption in Windows implementation
...
I used the Windows APIs wrong previously, but it had worked just
enough.
Updates #921
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-11-18 14:51:27 -08:00
Brad Fitzpatrick
8f76548fd9
tempfork/osexec: remove old fork of os/exec
...
This package was a temporary fork of os/exec to fix an EINTR loop
bug that was fixed upstream for Go 1.15 in
8c1db77a92
(https://go-review.googlesource.com/c/go/+/232862 ), in
src/os/exec_unix.go:
8c1db77a92 (diff-72072cbd53a7240debad8aa506ff7ec795f9cfac7322e779f9bac29a4d0d0bd4)
2020-11-18 08:42:43 -08:00
Brad Fitzpatrick
5b338bf011
tempfork/registry: delete
...
It's unused.
2020-11-18 08:29:38 -08:00
Brad Fitzpatrick
acade77c86
ipn/ipnserver: add knob to disable babysitter
2020-11-17 15:26:39 -08:00
Brad Fitzpatrick
5d96ecd5e6
net/netstat: remove a bit more unsafe
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-11-17 13:49:24 -08:00
Brad Fitzpatrick
c8939ab7c7
util/endian: add Native variable to get the platform's native binary.ByteOrder
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-11-17 13:49:24 -08:00
Josh Bleecher Snyder
883a11f2a8
logtail: fix typo in comment
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-11-17 13:43:54 -08:00
Brad Fitzpatrick
d9e2edb5ae
wgengine: reconfigure wireguard peer in two steps when its disco key changes
...
First remove the device (to clear its wireguard session key), and then
add it back.
Fixes #929
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-11-16 15:26:42 -08:00
David Anderson
3c508a58cc
wgengine/filter: don't filter GCP DNS.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-11-16 14:08:27 -08:00
Brad Fitzpatrick
51c8fd1dfc
logpolicy: add -race suffix to Go version when race detector in use
2020-11-16 10:13:06 -08:00
Brad Fitzpatrick
ff50ddf1ee
util/racebuild: add package to export a race-is-enabled const
2020-11-16 10:11:53 -08:00
Brad Fitzpatrick
fc8bc76e58
wgengine/router: lock goroutine to OS thread before using OLE [windows]
...
See https://github.com/tailscale/tailscale/issues/921#issuecomment-727526807
Not yet sure whether this is our problem, but it can't hurt at least,
and seems like what we're supposed to do.
Updates #921
2020-11-16 09:55:44 -08:00