Browse Source

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 <[email protected]>
Adrian Dewhurst 2 years ago
parent
commit
1ef5bd5381
3 changed files with 12 additions and 4 deletions
  1. 1 1
      util/osdiag/osdiag_windows.go
  2. 10 3
      util/winutil/winutil.go
  3. 1 0
      util/winutil/winutil_notwindows.go

+ 1 - 1
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 {

+ 10 - 3
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.

+ 1 - 0
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")