Brad Fitzpatrick
5df7ac70d6
cmd/tailscale/cli: add Stdout, Stderr and output through them
...
So js/wasm can override where those go, without implementing
an *os.File pipe pair, etc.
Updates #3157
Change-Id: I14ba954d9f2349ff15b58796d95ecb1367e8ba3a
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-27 14:53:46 -07:00
Brad Fitzpatrick
2ce5fc7b0a
safesocket: fail early on js/wasm
...
Updates #3157
Change-Id: Ib78efb3b1ba34ca4fb34296033b95327188774a7
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-27 14:53:28 -07:00
Brad Fitzpatrick
3b5ada1fd8
cmd/tailscale/cli: use errors.Is to check ff's wrapped flag errors
...
And also check from its Parse method.
Change-Id: I18754920575254cb6858a16b7954e74aa16483a1
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-27 14:06:22 -07:00
Brad Fitzpatrick
75de4e9cc2
cmd/tailscale/cli: don't ExitOnError on js/wasm
...
An os.Exit brings down the whole wasm module.
Updates #3157
Change-Id: I3daa97fd854715b901f3dbb04b57d841576b60b1
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-27 13:59:12 -07:00
Brad Fitzpatrick
b0b0a80318
net/netcheck: implement netcheck for js/wasm clients
...
And the derper change to add a CORS endpoint for latency measurement.
And a little magicsock change to cut down some log spam on js/wasm.
Updates #3157
Change-Id: I5fd9e6f5098c815116ddc8ac90cbcd0602098a48
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-27 09:59:31 -07:00
Brad Fitzpatrick
eebe7afad7
derp/derphttp: only log about a weird upgrade if any was specified
...
Otherwise random browser requests to /derp cause log spam.
Change-Id: I7bdf991d2106f0323868e651156c788a877a90d5
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-27 09:41:25 -07:00
Maisem Ali
81cabf48ec
control/controlclient,tailcfg: propagate registration errors to the frontend
...
Signed-off-by: Maisem Ali <maisem@tailscale.com>
2021-10-27 06:57:26 -07:00
Denton Gentry
139a6c4c9c
net/dns: detect when resolvconf points to systemd-resolved.
...
There are /etc/resolv.conf files out there where resolvconf wrote
the file but pointed to systemd-resolved as the nameserver.
We're better off handling those as systemd-resolved.
> # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
> # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
> # 127.0.0.53 is the systemd-resolved stub resolver.
> # run "systemd-resolve --status" to see details about the actual nameservers.
Fixes https://github.com/tailscale/tailscale/issues/3026
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2021-10-26 18:00:31 -07:00
David Anderson
a320d70614
net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails.
...
In some containers, /etc/resolv.conf is a bind-mount from outside the container.
This prevents renaming to or from /etc/resolv.conf, because it's on a different
filesystem from linux's perspective. It also prevents removing /etc/resolv.conf,
because doing so would break the bind-mount.
If we find ourselves within this environment, fall back to using copy+delete when
renaming to /etc/resolv.conf, and copy+truncate when renaming from /etc/resolv.conf.
Fixes #3000
Co-authored-by: Denton Gentry <dgentry@tailscale.com>
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-26 09:03:37 -07:00
David Anderson
04d24d3a38
net/dns: move directManager function below directManager's definition.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-26 09:03:37 -07:00
David Anderson
422ea4980f
net/dns: remove a tiny wrapper function that isn't contributing anything.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-26 09:03:37 -07:00
Maisem Ali
10745c099a
tailcfg: add Node.Tags
...
Signed-off-by: Maisem Ali <maisem@tailscale.com>
2021-10-25 22:04:45 -07:00
Maisem Ali
85fa1b0d61
wgengine: fail NewUserspaceEngine if wireguard device doesn't come up
...
Just something I ran across while debugging an unrelated failure. This
is not in response to any bug/issue.
Signed-off-by: Maisem Ali <maisem@tailscale.com>
2021-10-25 12:34:14 -07:00
Maya Kaczorowski
59a906df47
Merge pull request #3179 from tailscale/bugreport
...
.github: Add Synology as an OS
2021-10-25 09:59:39 -07:00
Denton Gentry
c1293b3858
.github: Add Synology as an OS
...
Sufficiently different from Linux to split it out separately.
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2021-10-24 06:01:29 -07:00
Brad Fitzpatrick
505f844a43
cmd/derper, derp/derphttp: add websocket support
...
Updates #3157
Change-Id: I337a919a3b350bc7bd9af567b49c4d5d6616abdd
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-22 12:51:30 -07:00
David Crawshaw
0b62f26349
magicsock: remove test data race
...
Speculative, I haven't been able to replicate it locally.
Fixes #3156
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2021-10-22 11:19:07 -07:00
Brad Fitzpatrick
09e692e318
health: don't look for UDP goroutines in js/wasm health check
...
Updates #3157
Change-Id: I43d97e6876eeb2d1936fc567835134568bb8615c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-22 09:12:00 -07:00
Brad Fitzpatrick
ed3fb197ad
wgengine/magicsock: fix/disable a few misc things to get js/wasm working
...
Updates #3157
Change-Id: Ie9e3a772bb9878584080bb257b32150492e26eaf
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-22 09:09:37 -07:00
Brad Fitzpatrick
a8e2cceefd
net/netcheck: hard-code preferred DERP region 900 on js/wasm for now
...
See TODO in code.
Updates #3157
Change-Id: I3a14dd2cf51d3c21336bb357af5abc362a079ff4
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-22 09:08:15 -07:00
Brad Fitzpatrick
c209278a9b
go.mod: bump wireguard-go to pick up upstreamed js/wasm build fixes
...
Updates #3157
Change-Id: I727cb5f77110c87850061aa3b9f03c15dbda70d3
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-21 10:37:07 -07:00
Brad Fitzpatrick
9b101bd6af
net/tstun: don't compile the code New constructor on js/wasm
...
Updates #3157
Change-Id: I81603edf3e69e6f1517b0074eef6b648f2981c50
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-21 10:36:30 -07:00
David Anderson
c60806b557
scripts/installer.sh: use .asc suffix for armored debian gpg key URL.
...
Fixes #2512
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-20 18:58:50 -07:00
Maxim Merzhanov
9f954628e5
net/dns: ignore UnknownMethod error in SetLinkDefaultRoute for resolved manager
...
Signed-off-by: Maxim Merzhanov <maksimmerzh@gmail.com>
2021-10-20 16:31:24 -07:00
Brad Fitzpatrick
e25afc6656
wgengine/magicsock: don't try to determine endpoints on js/wasm
...
Avoid netcheck, LocalAddr, etc.
Updates #3157
Change-Id: Ibc875c787c0e101b8076e64833f4fcc809372815
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-20 12:57:45 -07:00
David Anderson
8e3b8dbb50
scripts/installer.sh: Correct support for Oracle Linux.
...
Co-Authored-By: Jonathan Hult <jhult@mythics.com>
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-20 12:47:38 -07:00
Brad Fitzpatrick
6cb2705833
wgengine/magicsock: don't run UDP listeners on js/wasm
...
Be DERP-only for now. (WebRTC can come later :))
Updates #3157
Change-Id: I56ebb3d914e37e8f4ab651306fd705b817ca381c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-20 12:23:22 -07:00
Brad Fitzpatrick
8efc306e4f
net/interfaces: assume the network's up on js/wasm
...
Updates #3157
Change-Id: If4acd33598ad5e8ef7fb5960964c9ac32bc8f68b
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-20 12:23:22 -07:00
Brad Fitzpatrick
9310713bfb
all: fix some js/wasm compilation issues
...
Change-Id: I05a3a4835e225a1e413ec3540a7c7e4a2d477084
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-20 10:06:16 -07:00
Maisem Ali
0bf515e780
cmd/tailscale: changes to --advertise-tags should wait for possible
...
reauth.
Signed-off-by: Maisem Ali <maisem@tailscale.com>
2021-10-20 10:31:40 -04:00
David Anderson
1b4e007425
scripts/installer.sh: use expr for regex matches.
...
=~ doesn't work in posix shell, only in bash, and we don't use bash.
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-19 19:33:52 -07:00
David Anderson
7ce9c7ce84
scripts/installer.sh: use the appropriate apt key wrangling for the distro.
...
Updates #1937
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-19 19:15:07 -07:00
David Anderson
118fe105f5
scripts/installer.sh: add a few more supported distro versions.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-19 19:15:07 -07:00
Brad Fitzpatrick
c30fa5903d
wgengine/magicsock: remove peerMap.byDiscoKey map
...
No longer used.
Updates #3088
Change-Id: I0ced3f87baa4053d3838d3c4a828ed0293923825
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-19 12:22:11 -07:00
David Crawshaw
3552d86525
wgengine/magicsock: turn down timeouts in tests
...
Before:
--- PASS: TestActiveDiscovery (11.78s)
--- PASS: TestActiveDiscovery/facing_easy_firewalls (5.89s)
--- PASS: TestActiveDiscovery/facing_nats (5.89s)
--- PASS: TestActiveDiscovery/simple_internet (0.89s)
After:
--- PASS: TestActiveDiscovery (1.98s)
--- PASS: TestActiveDiscovery/facing_easy_firewalls (0.99s)
--- PASS: TestActiveDiscovery/facing_nats (0.99s)
--- PASS: TestActiveDiscovery/simple_internet (0.89s)
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2021-10-19 09:22:50 -07:00
dependabot[bot]
eaa0aef934
go.mod: bump github.com/creack/pty from 1.1.16 to 1.1.17
...
Bumps [github.com/creack/pty](https://github.com/creack/pty ) from 1.1.16 to 1.1.17.
- [Release notes](https://github.com/creack/pty/releases )
- [Commits](https://github.com/creack/pty/compare/v1.1.16...v1.1.17 )
---
updated-dependencies:
- dependency-name: github.com/creack/pty
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 15:34:09 -07:00
David Anderson
b956139b0c
wgengine/magicsock: track IP<>node mappings without relying on discokeys.
...
Updates #3088 .
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-18 14:58:21 -07:00
Brad Fitzpatrick
7a243ae5b1
wgengine/magicsock: finish TODO to speed up peerMap.forEachEndpointWithDiscoKey
...
Now that peerMap tracks the set of nodes for a DiscoKey.
Updates #3088
Change-Id: I927bf2bdfd2b8126475f6b6acc44bc799fcb489f
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-18 14:50:28 -07:00
Aaron Klotz
c6ea282b3f
utils/winutil utils/winutil/vss: add utility function for extracting data from Windows System Restore Point backups.
...
utils/winutil/vss contains just enough COM wrapping to query the Volume Shadow Copy service for snapshots.
WalkSnapshotsForLegacyStateDir is the friendlier interface that adds awareness of our actual use case,
mapping the snapshots and locating our legacy state directory.
Updates #3011
Signed-off-by: Aaron Klotz <aaron@tailscale.com>
2021-10-18 15:48:42 -06:00
Aaron Klotz
6425f497b1
ipn/ipnserver paths: add paths.LegacyStateFilePath
...
Moving this information into a centralized place so that it is accessible to
code in subsequent commits.
Updates #3011
Signed-off-by: Aaron Klotz <aaron@tailscale.com>
2021-10-18 15:48:42 -06:00
Brad Fitzpatrick
11fdb14c53
wgengine/magicsock: don't check always-non-nil endpoint for nil-ness
...
Continuation of 2aa5df7ac1
, remove nil
check because it can never be nil. (It previously was able to be nil.)
Change-Id: I59cd9ad611dbdcbfba680ed9b22e841b00c9d5e6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-18 14:37:59 -07:00
David Anderson
e7eb46bced
wgengine/magicsock: add an explicit else branch to peerMap update.
...
Clarifies that the replace+delete of peerinfo data is only when peerInfo
already exists.
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-18 13:05:52 -07:00
David Anderson
1c56643136
disco: amplify comment that disco ping's NodeKey shouldn't be trusted by itself.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-18 13:05:52 -07:00
Robert
cb030a0bb4
docs/k8s: add example about setting up a subnet router
...
Signed-off-by: Robert <rspier@pobox.com>
Co-authored-by: Maisem Ali <3953239+maisem@users.noreply.github.com>
2021-10-18 14:54:00 -04:00
Maisem Ali
53199738fb
wgengine: don't try to delete legacy netfilter rules on synology.
...
Signed-off-by: Maisem Ali <maisem@tailscale.com>
2021-10-18 14:51:25 -04:00
David Anderson
2aa5df7ac1
wgengine/magicsock: document and enforce that peerInfo.ep is non-nil.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-18 10:49:24 -07:00
David Anderson
521b44e653
wgengine/magicsock: move discoKey fields to the mutex-protected section.
...
Fixes #3106
Signed-off-by: David Anderson <danderson@tailscale.com>
2021-10-18 10:49:24 -07:00
Maisem Ali
27799a1a96
wgengine: only use AmbientCaps on DSM7+
...
Signed-off-by: Maisem Ali <maisem@tailscale.com>
2021-10-18 13:39:51 -04:00
Brad Fitzpatrick
a6d02dc122
wgengine/magicsock: track which NodeKey each DiscoKey was last for
...
This adds new fields (currently unused) to discoInfo to track what the
last verified (unambiguous) NodeKey a DiscoKey last mapped to, and
when.
Then on CallMeMaybe, Pong and on most Pings, we update the mapping
from DiscoKey to the current NodeKey for that DiscoKey.
Updates #3088
Change-Id: Idc4261972084dec71cf8ec7f9861fb9178eb0a4d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-18 09:55:02 -07:00
Brad Fitzpatrick
c759fcc7d3
wgengine/magicsock: fix data race with sync.Pool in error+logging path
...
Fixes #3122
Change-Id: Ib52e84f9bd5813d6cf2e80ce5b2296912a48e064
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-17 17:27:57 -07:00