summaryrefslogtreecommitdiffhomepage
path: root/util/syspolicy/handler_windows.go
blob: c12a21fdfca2a0ac9eb3b110c97cbc8eb50bb01e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause

package syspolicy

import (
	"errors"

	"tailscale.com/util/winutil"
)

type windowsHandler struct{}

func init() {
	RegisterHandler(windowsHandler{})
}

func (windowsHandler) ReadString(key string) (string, error) {
	s, err := winutil.GetPolicyString(key)
	if errors.Is(err, winutil.ErrNoValue) {
		err = ErrNoSuchKey
	}
	return s, err
}

func (windowsHandler) ReadUInt64(key string) (uint64, error) {
	value, err := winutil.GetPolicyInteger(key)
	if errors.Is(err, winutil.ErrNoValue) {
		err = ErrNoSuchKey
	}
	return value, err
}

func (windowsHandler) ReadBoolean(key string) (bool, error) {
	value, err := winutil.GetPolicyInteger(key)
	if errors.Is(err, winutil.ErrNoValue) {
		err = ErrNoSuchKey
	}
	return value != 0, err
}