From 1ef5bd53819c22a8a077c6aef5c5b49de58fee0a Mon Sep 17 00:00:00 2001 From: Adrian Dewhurst Date: Mon, 23 Oct 2023 13:54:53 -0400 Subject: [PATCH] util/osdiag, util/winutil: expose Windows policy key The Windows base registry key is already exported but the policy key was not. util/osdiag currently replicates the string rather than the preferred approach of reusing the constant. Updates #cleanup Change-Id: I6c1c45337896c744059b85643da2364fb3f232f2 Signed-off-by: Adrian Dewhurst --- util/osdiag/osdiag_windows.go | 2 +- util/winutil/winutil.go | 13 ++++++++++--- util/winutil/winutil_notwindows.go | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/util/osdiag/osdiag_windows.go b/util/osdiag/osdiag_windows.go index 992f3589d..beb1bc26a 100644 --- a/util/osdiag/osdiag_windows.go +++ b/util/osdiag/osdiag_windows.go @@ -54,7 +54,7 @@ const ( func getSupportInfo(w io.Writer, reason LogSupportInfoReason) error { output := make(map[string]any) - regInfo, err := getRegistrySupportInfo(registry.LOCAL_MACHINE, []string{`SOFTWARE\Policies\Tailscale`, winutil.RegBase}) + regInfo, err := getRegistrySupportInfo(registry.LOCAL_MACHINE, []string{winutil.RegPolicyBase, winutil.RegBase}) if err == nil { output[supportInfoKeyRegistry] = regInfo } else { diff --git a/util/winutil/winutil.go b/util/winutil/winutil.go index 4b771491a..81bca9fe6 100644 --- a/util/winutil/winutil.go +++ b/util/winutil/winutil.go @@ -8,9 +8,16 @@ import ( "os/user" ) -// RegBase is the registry path inside HKEY_LOCAL_MACHINE where registry settings -// are stored. This constant is a non-empty string only when GOOS=windows. -const RegBase = regBase +const ( + // RegBase is the registry path inside HKEY_LOCAL_MACHINE where registry settings + // are stored. This constant is a non-empty string only when GOOS=windows. + RegBase = regBase + + // RegPolicyBase is the registry path inside HKEY_LOCAL_MACHINE where registry + // policies are stored. This constant is a non-empty string only when + // GOOS=windows. + RegPolicyBase = regPolicyBase +) // GetPolicyString looks up a registry value in the local machine's path for // system policies, or returns empty string and the error. diff --git a/util/winutil/winutil_notwindows.go b/util/winutil/winutil_notwindows.go index a40712c3f..8469a5082 100644 --- a/util/winutil/winutil_notwindows.go +++ b/util/winutil/winutil_notwindows.go @@ -13,6 +13,7 @@ import ( ) const regBase = `` +const regPolicyBase = `` var ErrNoValue = errors.New("no value because registry is unavailable on this OS")