mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-27 10:47:35 +00:00
hostinfo: use Distro field for distinguishing Windows Server builds
Some editions of Windows server share the same build number as their client counterpart; we must use an additional field found in the OS version information to distinguish between them. Even though "Distro" has Linux connotations, it is the most appropriate hostinfo field. What is Windows Server if not an alternate distribution of Windows? This PR populates Distro with "Server" when applicable. Fixes #11785 Signed-off-by: Aaron Klotz <aaron@tailscale.com>
This commit is contained in:
parent
02c6af2a69
commit
7132b782d4
@ -157,6 +157,7 @@ tailscale.com/cmd/derper dependencies: (generated by github.com/tailscale/depawa
|
|||||||
tailscale.com/util/syspolicy from tailscale.com/ipn
|
tailscale.com/util/syspolicy from tailscale.com/ipn
|
||||||
tailscale.com/util/vizerror from tailscale.com/tailcfg+
|
tailscale.com/util/vizerror from tailscale.com/tailcfg+
|
||||||
W 💣 tailscale.com/util/winutil from tailscale.com/hostinfo+
|
W 💣 tailscale.com/util/winutil from tailscale.com/hostinfo+
|
||||||
|
W 💣 tailscale.com/util/winutil/winenv from tailscale.com/hostinfo
|
||||||
tailscale.com/version from tailscale.com/derp+
|
tailscale.com/version from tailscale.com/derp+
|
||||||
tailscale.com/version/distro from tailscale.com/envknob+
|
tailscale.com/version/distro from tailscale.com/envknob+
|
||||||
tailscale.com/wgengine/filter from tailscale.com/types/netmap
|
tailscale.com/wgengine/filter from tailscale.com/types/netmap
|
||||||
|
@ -166,6 +166,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
|
|||||||
tailscale.com/util/vizerror from tailscale.com/tailcfg+
|
tailscale.com/util/vizerror from tailscale.com/tailcfg+
|
||||||
💣 tailscale.com/util/winutil from tailscale.com/clientupdate+
|
💣 tailscale.com/util/winutil from tailscale.com/clientupdate+
|
||||||
W 💣 tailscale.com/util/winutil/authenticode from tailscale.com/clientupdate
|
W 💣 tailscale.com/util/winutil/authenticode from tailscale.com/clientupdate
|
||||||
|
W 💣 tailscale.com/util/winutil/winenv from tailscale.com/hostinfo
|
||||||
tailscale.com/version from tailscale.com/client/web+
|
tailscale.com/version from tailscale.com/client/web+
|
||||||
tailscale.com/version/distro from tailscale.com/client/web+
|
tailscale.com/version/distro from tailscale.com/client/web+
|
||||||
tailscale.com/wgengine/capture from tailscale.com/cmd/tailscale/cli
|
tailscale.com/wgengine/capture from tailscale.com/cmd/tailscale/cli
|
||||||
|
@ -399,6 +399,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
|
|||||||
💣 tailscale.com/util/winutil from tailscale.com/clientupdate+
|
💣 tailscale.com/util/winutil from tailscale.com/clientupdate+
|
||||||
W 💣 tailscale.com/util/winutil/authenticode from tailscale.com/clientupdate+
|
W 💣 tailscale.com/util/winutil/authenticode from tailscale.com/clientupdate+
|
||||||
W tailscale.com/util/winutil/policy from tailscale.com/ipn/ipnlocal
|
W tailscale.com/util/winutil/policy from tailscale.com/ipn/ipnlocal
|
||||||
|
W 💣 tailscale.com/util/winutil/winenv from tailscale.com/hostinfo
|
||||||
tailscale.com/util/zstdframe from tailscale.com/control/controlclient+
|
tailscale.com/util/zstdframe from tailscale.com/control/controlclient+
|
||||||
tailscale.com/version from tailscale.com/client/web+
|
tailscale.com/version from tailscale.com/client/web+
|
||||||
tailscale.com/version/distro from tailscale.com/client/web+
|
tailscale.com/version/distro from tailscale.com/client/web+
|
||||||
|
@ -13,18 +13,28 @@ import (
|
|||||||
"golang.org/x/sys/windows/registry"
|
"golang.org/x/sys/windows/registry"
|
||||||
"tailscale.com/types/ptr"
|
"tailscale.com/types/ptr"
|
||||||
"tailscale.com/util/winutil"
|
"tailscale.com/util/winutil"
|
||||||
|
"tailscale.com/util/winutil/winenv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
distroName = lazyDistroName.Get
|
||||||
osVersion = lazyOSVersion.Get
|
osVersion = lazyOSVersion.Get
|
||||||
packageType = lazyPackageType.Get
|
packageType = lazyPackageType.Get
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
lazyDistroName = &lazyAtomicValue[string]{f: ptr.To(distroNameWindows)}
|
||||||
lazyOSVersion = &lazyAtomicValue[string]{f: ptr.To(osVersionWindows)}
|
lazyOSVersion = &lazyAtomicValue[string]{f: ptr.To(osVersionWindows)}
|
||||||
lazyPackageType = &lazyAtomicValue[string]{f: ptr.To(packageTypeWindows)}
|
lazyPackageType = &lazyAtomicValue[string]{f: ptr.To(packageTypeWindows)}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func distroNameWindows() string {
|
||||||
|
if winenv.IsWindowsServer() {
|
||||||
|
return "Server"
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func osVersionWindows() string {
|
func osVersionWindows() string {
|
||||||
major, minor, build := windows.RtlGetNtVersionNumbers()
|
major, minor, build := windows.RtlGetNtVersionNumbers()
|
||||||
s := fmt.Sprintf("%d.%d.%d", major, minor, build)
|
s := fmt.Sprintf("%d.%d.%d", major, minor, build)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user