handler_windows.go 835 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. package syspolicy
  4. import (
  5. "errors"
  6. "tailscale.com/util/winutil"
  7. )
  8. type windowsHandler struct{}
  9. func init() {
  10. RegisterHandler(NewCachingHandler(windowsHandler{}))
  11. }
  12. func (windowsHandler) ReadString(key string) (string, error) {
  13. s, err := winutil.GetPolicyString(key)
  14. if errors.Is(err, winutil.ErrNoValue) {
  15. err = ErrNoSuchKey
  16. }
  17. return s, err
  18. }
  19. func (windowsHandler) ReadUInt64(key string) (uint64, error) {
  20. value, err := winutil.GetPolicyInteger(key)
  21. if errors.Is(err, winutil.ErrNoValue) {
  22. err = ErrNoSuchKey
  23. }
  24. return value, err
  25. }
  26. func (windowsHandler) ReadBoolean(key string) (bool, error) {
  27. value, err := winutil.GetPolicyInteger(key)
  28. if errors.Is(err, winutil.ErrNoValue) {
  29. err = ErrNoSuchKey
  30. }
  31. return value != 0, err
  32. }