Kyle Carberry
27038ee3c2
hostinfo: cache device model to speed up init
...
This was causing a relatively consistent ~10ms of delay on Linux.
Signed-off-by: Kyle Carberry <kyle@carberry.com>
2024-04-02 09:09:43 -07:00
Derek Kaser
0d7303b798
various: add detection and Taildrop for Unraid
...
Updates tailscale/tailscale#8025
Signed-off-by: Derek Kaser <derek.kaser@gmail.com>
2023-05-04 13:40:13 -07:00
Brad Fitzpatrick
b1248442c3
all: update to Go 1.20, use strings.CutPrefix/Suffix instead of our fork
...
Updates #7123
Updates #5309
Change-Id: I90bcd87a2fb85a91834a0dd4be6e03db08438672
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2023-02-01 15:23:54 -08:00
Will Norris
71029cea2d
all: update copyright and license headers
...
This updates all source files to use a new standard header for copyright
and license declaration. Notably, copyright no longer includes a date,
and we now use the standard SPDX-License-Identifier header.
This commit was done almost entirely mechanically with perl, and then
some minimal manual fixes.
Updates #6865
Signed-off-by: Will Norris <will@tailscale.com>
2023-01-27 15:36:29 -08:00
Brad Fitzpatrick
197a4f1ae8
types/ptr: move all the ptrTo funcs to one new package's ptr.To
...
Change-Id: Ia0b820ffe7aa72897515f19bd415204b6fe743c7
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-11-30 17:50:51 -08:00
Brad Fitzpatrick
da8def8e13
all: remove old +build tags
...
The //go:build syntax was introduced in Go 1.17:
https://go.dev/doc/go1.17#build-lines
gofmt has kept the +build and go:build lines in sync since
then, but enough time has passed. Time to remove them.
Done with:
perl -i -npe 's,^// \+build.*\n,,' $(git grep -l -F '+build')
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-11-04 07:25:42 -07:00
Eng Zer Jun
f0347e841f
refactor: move from io/ioutil to io and os packages
...
The io/ioutil package has been deprecated as of Go 1.16 [1]. This commit
replaces the existing io/ioutil functions with their new definitions in
io and os packages.
Reference: https://golang.org/doc/go1.16#ioutil
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-09-15 21:45:53 -07:00
Brad Fitzpatrick
d5e7e3093d
hostinfo, tailcfg: split Hostinfo.OSVersion into separate fields
...
Stop jamming everything into one string.
Fixes #5578
Change-Id: I7dec8d6c073bddc7dc5f653e3baf2b4bf6b68378
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-09-11 21:40:28 -07:00
Brad Fitzpatrick
ec9d13bce5
hostinfo, net/netcheck: use CutPrefix
...
Updates #5309
Change-Id: I37e594cfd245784bf810c493de68a66d3ff20677
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-08-05 15:17:44 -07:00
Denton Gentry
4dd799ec43
hostinfo: determine QNAP QTS version
...
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2022-07-22 19:43:47 -07:00
Denton Gentry
c6ac82e3a6
hostinfo,distro: Identify Western Digital MyCloud devices.
...
root@WDMyCloud HD_a2 # ./tailscale debug hostinfo
{
"IPNVersion": "1.25.0-dev20220605-t7fea52e02",
"OS": "linux",
"OSVersion": "5.22.113",
"Desktop": false,
"DeviceModel": "WD My Cloud Gen2: Marvell Armada 375",
"Hostname": "WDMyCloud",
"GoArch": "arm"
}
Updates https://github.com/tailscale/tailscale/issues/4622
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2022-06-05 08:22:42 -07:00
Tobias Klauser
3a926348a4
hostinfo: use ByteSliceToString from golang.org/x/sys/unix
...
Use unix.ByteSliceToString in osVersionFreebsd and osVersionLinux to
convert the Utsname.Release []byte field to string.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2022-06-01 07:43:44 -07:00
Tobias Klauser
2a61261a5a
hostinfo: use Uname from golang.org/x/sys/unix in osVersionLinux
...
As already done in osVersionFreebsd. This will allow to use the Utsname
fields as []byte for easier conversion to string.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2022-06-01 07:43:44 -07:00
Brad Fitzpatrick
58a6c9b2b8
version, hostinfo: recognize gokrazy as a distro
...
Now:
/tmp/breakglass3929186798 # /user/tailscale debug hostinfo
{
"IPNVersion": "1.23.0-date.20220107",
"OS": "linux",
"OSVersion": "Gokrazy; kernel=5.16.11",
"DeviceModel": "Raspberry Pi 4 Model B Rev 1.2",
"Hostname": "gokrazy",
"GoArch": "arm64"
}
Also, cache the distro lookup. It doesn't change while the program is
running:
name old time/op new time/op delta
Get-6 5.21µs ± 5% 0.00µs ± 3% -99.91% (p=0.008 n=5+5)
name old alloc/op new alloc/op delta
Get-6 792B ± 0% 0B -100.00% (p=0.008 n=5+5)
name old allocs/op new allocs/op delta
Get-6 8.00 ± 0% 0.00 -100.00% (p=0.008 n=5+5)
Updates #1866
Change-Id: Ifb9a63b94287010d3f4c8bfeb6b78119e8a9b203
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-03-01 19:37:20 -08:00
Brad Fitzpatrick
4fee321004
hostinfo: move packageType out to platform-specific files
...
Change-Id: I3236b3d4e2376dd7e2482c2562817b1b6f44872e
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-02-22 10:23:13 -08:00
Brad Fitzpatrick
58e1475ec7
hostinfo: look up Synology hardware a more specific way
...
Fixes #2991
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-10-04 10:28:28 -07:00
Brad Fitzpatrick
6990a314f5
hostinfo: set DeviceModel from Linux devicetree model
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-08-22 21:28:36 -07:00
Brad Fitzpatrick
3ac731dda1
hostinfo: fix earlier git fail, add files lost in move
...
This was meant to be part of 47045265b9
which instead deleted them :(
Updates tailscale/corp#1959
2021-08-22 21:14:04 -07:00