Mihai Parparita and Mihai Parparita
9dfcdbf478
.github/workflows: put back CLI in cross-wasm GitHub action
...
Since we're keeping the JS support in the CLI (see https://github.com/tailscale/tailscale/pull/5265#issuecomment-1203078243 ),
make sure it keeps building.
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-08-02 12:39:35 -07:00
Mihai Parparita and Mihai Parparita
e846481731
cmd/tailscale/cli: use printf and outln consistently
...
Fix some fmt.Println and fmt.Printf calls that crept in since
5df7ac70d6 .
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-08-02 12:37:45 -07:00
Maisem Ali and Maisem Ali
02a765743e
ssh/tailssh: fix deadlock in expandDelegateURL
...
Also rename it to expandDelegateURLLocked, previously it was trying
to acquire the mutex while holding the mutex.
Fixes #5235
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2022-08-02 12:25:09 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
e1309e1323
all: require Go 1.19
...
Updates #5210
Change-Id: I2e950b4776636b4ea89b6566b60e4a87596a3a43
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-08-02 11:49:01 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
fb82299f5a
wgengine/magicsock: avoid RebindingUDPConn mutex in common read/write case
...
Change-Id: I209fac567326f2e926bace2582dbc67a8bc94c78
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-08-02 11:27:10 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
116f55ff66
all: gofmt for Go 1.19
...
Updates #5210
Change-Id: Ib02cd5e43d0a8db60c1f09755a8ac7b140b670be
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-08-02 10:08:05 -07:00
Maisem Ali and Maisem Ali
a029989aff
types/dnstype: use viewer instead of cloner
...
This was missed when I did the initial viewer work.
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2022-08-02 09:58:53 -07:00
Joe Tsai and GitHub
57275a4912
tsweb: add HTTPError.Header ( #5251 )
...
The Header field allows the server to specify specific headers to set.
Example use case: server returns 429 with the "Retry-After" header set.
Signed-off-by: Joe Tsai <joetsai@digital-static.net >
2022-08-01 22:57:04 -07:00
Joe Tsai and GitHub
a794963e2f
tsweb: mark AccessLogRecord fields as omitempty ( #5250 )
...
If the field is the zero value, then avoid serializing the field.
This reduces verbosity in server logs.
Signed-off-by: Joe Tsai <joetsai@digital-static.net >
2022-08-01 21:17:38 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
5d0e3d379c
go.mod: bump gvisor
...
For https://github.com/google/gvisor/pull/7850 to quiet macOS warnings.
Updates #5240
Change-Id: Iaa7abab20485c8ff40e5c9b16013aef4fd297a64
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-08-01 16:48:27 -07:00
Joe Tsai and GitHub
b905db7a56
cmd/derper: remove support for logtail logging ( #5248 )
...
There aren't really any useful logs produced by derper.
Signed-off-by: Joe Tsai <joetsai@digital-static.net >
2022-08-01 14:36:55 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
357fd85ecf
go.toolchain.rev: bump tailscale.go1.19 commit
...
for mutex slow path metrics: https://github.com/tailscale/go/pull/33
(a maybe temporary experiment)
Change-Id: Idba1ef866e2e1764728bdd869c25becccc1051b0
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-31 22:10:31 -07:00
Mihai Parparita and Mihai Parparita
c06758c83b
cmd/tsconnect: allow SSH username to be specified
...
Redoes the UI to be a form, with a username field and a host drop-down.
Fixes #5139
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-07-29 15:54:06 -07:00
Tom DNetto and Tom
47f91dd732
cmd/tailscale{,d}: update depaware
...
Signed-off-by: Tom DNetto <tom@tailscale.com >
2022-07-29 12:16:32 -07:00
Tom DNetto and Tom
023d4e2216
tka,types/key: implement NLPrivate glue for tailnet key authority keys
...
Signed-off-by: Tom DNetto <tom@tailscale.com >
2022-07-29 12:16:32 -07:00
Tom DNetto and Tom
7a74466998
shell.nix: update Go toolchain to 1.19
...
Signed-off-by: Tom DNetto <tom@tailscale.com >
2022-07-29 11:25:47 -07:00
Tom DNetto and Tom
44a9b0170b
tka: support processing non-primary forks, scenario-driven tests
...
Signed-off-by: Tom DNetto <tom@tailscale.com >
2022-07-29 11:18:06 -07:00
Maisem Ali and Maisem Ali
8fd5d3eaf3
tstest: do not error if the there are fewer goroutines than at start
...
This fixes test failures like:
```
resource.go:34: goroutine count: expected 3, got 2
```
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2022-07-29 09:53:01 -07:00
Tom DNetto and Tom
5e61d52f91
tka: implement API surface for generating updates
...
Based on the builder pattern.
Signed-off-by: Tom DNetto <tom@tailscale.com >
2022-07-29 09:36:32 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
acc3b7f259
go.mod: bump inet.af/wf, tidy
...
This removes inet.af/netaddr from go.{mod,sum}.
Updates #5162
Change-Id: I7121e9fbb96d036cf188c51f0b53731570252d69
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-28 14:50:50 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
f541e00db2
go.toolchain.rev: bump for VERSION file
...
Updates #5210
Change-Id: Ib6db8b010a6a9369a3eda8a86a49e538e376aff6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-28 14:29:15 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
eae003e56f
ipn/ipnlocal: blend existing host SSH keys + newly-generated types as needed
...
If the host only has RSA, use its RSA + generate ecdsa + ed25519, etc.
Perhaps fixes https://twitter.com/colek42c/status/1550554439299244032 and
something else that was reported.
Change-Id: I88dc475c8e3d95b6f25288ff7664b8e72655fd16
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-28 11:42:58 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
e5176f572e
go.toolchain.rev: switch to Go 1.19rc2+
...
Switch to Go 1.19rc2 in prep for the Go 1.19 GA release on Tuesday.
(We won't be using any Go 1.19 features until then.)
Updates #5210
Change-Id: I94fa0ae8f5645fb7579429668f3970c18d1796d8
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-28 11:28:21 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
48e73e147a
logtail,logpolicy: tweak minor cosmetic things
...
Just reading the code again in prep for some alloc reductions.
Change-Id: I065226ea794b7ec7144c2b15942d35131c9313a8
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-27 21:13:46 -07:00
Mihai Parparita and Mihai Parparita
ab60f28227
cmd/tsconnect: fix xterm CSS not being imported
...
@import rules need to come first, they are (silently) ignored otherwise.
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-07-27 16:16:13 -07:00
Mihai Parparita and Mihai Parparita
7c3f480767
cmd/tsconnect: lint during build step
...
Ensures that TypeScript checks pass before we deploy.
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-07-27 16:12:22 -07:00
James Tucker and James Tucker
d5fb852718
build_dist.sh: add --box and --extra-small flag to produce smaller and boxed binaries
...
- `--box` when ./cmd/tailscaled is built with this flag, it builds a
"toybox" style binary that includes tailscale and tailscaled.
- `--extra-small` strip the output binary and omit some dependencies
(currently AWS integration).
Signed-off-by: James Tucker <james@tailscale.com >
2022-07-27 16:08:52 -07:00
Mihai Parparita and Mihai Parparita
a3d74c4548
cmd/tsconnect: add basic panic handling
...
The go wasm process exiting is a sign of an unhandled panic. Also
add a explicit recover() call in the notify callback, that's where most
logic bugs are likely to happen (and they may not be fatal).
Also fixes the one panic that was encountered (nill pointer dereference
when generating the JS view of the netmap).
Fixes #5132
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-07-27 15:42:58 -07:00
Aaron Klotz
4dbdb19c26
net/tshttpproxy: fix incorrect type in Windows implementation, switch to mkwinsyscall, fix memory leak
...
The definition of winHTTPProxyInfo was using the wrong type (uint16 vs uint32)
for its first field. I fixed that type.
Furthermore, any UTF16 strings returned in that structure must be explicitly
freed. I added code to do this.
Finally, since this is the second time I've seen type safety errors in this code,
I switched the native API calls over to use wrappers generated by mkwinsyscall.
I know that would not have helped prevent the previous two problems, but every
bit helps IMHO.
Updates https://github.com/tailscale/tailscale/issues/4811
Signed-off-by: Aaron Klotz <aaron@tailscale.com >
2022-07-27 16:33:57 -06:00
Aaron Klotz
446d03e108
scripts: update check_license_headers.sh to skip zsyscall_windows.go
...
Signed-off-by: Aaron Klotz <aaron@tailscale.com >
2022-07-27 16:19:39 -06:00
Brad Fitzpatrick and Brad Fitzpatrick
97b8c4fa1b
ipn/store/awsstore: add "ts_omit_aws" build tag to reduce binary size
...
Drops tailscaled from 23M to 21M.
Change-Id: I731c542d03113ac94abb695e3c8fcacbc5542712
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-27 14:19:33 -07:00
nyghtowl and Melanie Warrick
e6e1976c3a
net/dns: remove systemd-resolved ping
...
Ping only needed to ensure system awak otherwise utilizing resolvConf to set dns mode.
Signed-off-by: nyghtowl <warrick@tailscale.com >
2022-07-27 14:15:22 -07:00
Mihai Parparita and Mihai Parparita
617a2ec7cc
cmd/tsconnect: add Tailwind CSS support and switch to using it
...
Integrates Tailwind CSS as an esbuild plugin that invokes the CLI
to process the input. It takes ~400ms, so it seems like the easiest
option (vs running a separate process for dev mode).
Existing minimal look and feel is replicated with Tailwind classes,
mostly to prove that the entire system works, including unused
class removal.
Also fixes yarn warnings about package.json not having a license
(which were showing up when invoking any scripts).
Fixes #5136
Fixes #5129
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-07-27 14:05:45 -07:00
Mihai Parparita and Mihai Parparita
389629258b
cmd/tsconnect: switch to TypeScript
...
Continues to use esbuild for development mode and building. Also
includes a `yarn lint` script that uses tsc to do full type checking.
Fixes #5138
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-07-27 13:50:34 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
0a6aa75a2d
cmd/tailscaled: add opt-in support for linking CLI into daemon
...
Doesn't help much, though.
$ go install --tags=ts_include_cli ./cmd/tailscaled/
$ ls -lh ~/go/bin/tailscaled
-rwxr-xr-x 2 bradfitz bradfitz 34M Jul 27 11:00 /home/bradfitz/go/bin/tailscaled
$ go install --tags= ./cmd/tailscaled/
$ ls -lh ~/go/bin/tailscaled
-rwxr-xr-x 1 bradfitz bradfitz 23M Jul 27 11:00 /home/bradfitz/go/bin/tailscaled
$ ls -lh ~/go/bin/tailscale
-rwxr-xr-x 1 bradfitz bradfitz 13M Jul 25 21:30 /home/bradfitz/go/bin/tailscale
Fixes #2233
Change-Id: I46bae91bb38eb47a76251c1b5c1e9e455fc234b6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-27 11:15:52 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
04cf46a762
util/deephash: fix unexported time.Time hashing
...
Updates tailscale/corp#6311
Change-Id: I33cd7e4040966261c2f2eb3d32f29936aeb7f632
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-27 09:28:23 -07:00
Maisem Ali and Maisem Ali
51c3d74095
types/views: add BenchmarkSliceIteration
...
```
goos: darwin
goarch: arm64
pkg: tailscale.com/types/views
BenchmarkSliceIteration/Len-10 340093 3212 ns/op 0 B/op 0 allocs/op
BenchmarkSliceIteration/Cached-Len-10 366727 3211 ns/op 0 B/op 0 allocs/op
BenchmarkSliceIteration/direct-10 361561 3290 ns/op 0 B/op 0 allocs/op
PASS
ok tailscale.com/types/views 3.662s
```
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2022-07-26 21:25:26 -07:00
Maisem Ali and Maisem Ali
fa2fbaf3aa
tailcfg: add views for SSHRule and SSHPrincipal
...
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2022-07-26 20:57:33 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
7c671b0220
.github/workflows: add gofmt (goimports) check
...
Change-Id: Iceb3182827b9c65f28f0351e0e254abe4a95e4de
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-26 09:46:06 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
dd3e91b678
go.mod: tidy, remove inet.af/netaddr
...
It was actually unused earlier, but I had a test program
in my git workdir, keeping go mod tidy from cleaning it.
(more CI needed, perhaps)
Updates #5162
Change-Id: I9047a9aaa6fde7736d6ef516dc3bb652d06fe921
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-25 22:08:20 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
a12aad6b47
all: convert more code to use net/netip directly
...
perl -i -npe 's,netaddr.IPPrefixFrom,netip.PrefixFrom,' $(git grep -l -F netaddr.)
perl -i -npe 's,netaddr.IPPortFrom,netip.AddrPortFrom,' $(git grep -l -F netaddr. )
perl -i -npe 's,netaddr.IPPrefix,netip.Prefix,g' $(git grep -l -F netaddr. )
perl -i -npe 's,netaddr.IPPort,netip.AddrPort,g' $(git grep -l -F netaddr. )
perl -i -npe 's,netaddr.IP\b,netip.Addr,g' $(git grep -l -F netaddr. )
perl -i -npe 's,netaddr.IPv6Raw\b,netip.AddrFrom16,g' $(git grep -l -F netaddr. )
goimports -w .
Then delete some stuff from the net/netaddr shim package which is no
longer neeed.
Updates #5162
Change-Id: Ia7a86893fe21c7e3ee1ec823e8aba288d4566cd8
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-25 21:53:49 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
6a396731eb
all: use various net/netip parse funcs directly
...
Mechanical change with perl+goimports.
Changed {Must,}Parse{IP,IPPrefix,IPPort} to their netip variants, then
goimports -d .
Finally, removed the net/netaddr wrappers, to prevent future use.
Updates #5162
Change-Id: I59c0e38b5fbca5a935d701645789cddf3d7863ad
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-25 21:12:28 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
730ca4203c
cmd/tsshd: add a package line to appease gofmt
...
Change-Id: I2fbbe983186169ddf1995d2f51c7b5a6164a0904
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-25 20:52:04 -07:00
Mihai Parparita and Mihai Parparita
7e4883b261
.github/workflows: add tsconnect static build to wasm GitHub action
...
Technically not the same as the wasm cross-compilation, but it's
closely connected to it.
Also includes some fixes to tool/yasm to make it actually work on
non-ARM platforms.
Fixes #5134
Signed-off-by: Mihai Parparita <mihai@tailscale.com >
2022-07-25 18:02:22 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
7eaf5e509f
net/netaddr: start migrating to net/netip via new netaddr adapter package
...
Updates #5162
Change-Id: Id7bdec303b25471f69d542f8ce43805328d56c12
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-07-25 16:20:43 -07:00
James Tucker and James Tucker
7b1a91dfd3
tool/go: accept a marker file with no line terminator
...
Somewhere my local configuration or program versions are producing
marker files earlier in the process that lack a line terminator. This
doesn't need to cause an exit via set -e, we can just continue the
process. $extracted matches $REV anyway, so the process works.
Signed-off-by: James Tucker <james@tailscale.com >
2022-07-25 16:06:52 -07:00
Walter Poupore and GitHub
df9f3edea3
docs/k8s: add prefix to ( #5167 )
...
Signed-off-by: Walter Poupore <walterp@tailscale.com >
2022-07-25 15:10:07 -07:00
Denton Gentry and Denton Gentry
7fd03ad4b4
logpolicy: put QNAP logs buffer in /tmp
...
Ongoing log writing keeps the spinning disks from hibernating.
Extends earlier implementation for Synology to also handle QNAP.
Signed-off-by: Denton Gentry <dgentry@tailscale.com >
2022-07-25 09:45:04 -07:00
Denton Gentry and Denton Gentry
f85bb60eba
ipn/ipnlocal: prevent attempting to run SSH on QNAP for now
...
tailscaled runs as a non-root user, SSH is not immediately working.
Signed-off-by: Denton Gentry <dgentry@tailscale.com >
2022-07-25 09:45:04 -07:00
Xe Iaso and GitHub
904723691b
cmd/gitops-pusher: things i forgot to push last PR ( #5128 )
...
Signed-off-by: Xe <xe@tailscale.com >
2022-07-25 09:09:32 -04:00