mirror of
https://github.com/tailscale/tailscale.git
synced 2025-03-23 17:51:05 +00:00
util/winutil: add GetRegInteger
This helper allows us to retrieve `DWORD` and `QWORD` values from the Tailscale key in the Windows registry. Signed-off-by: Aaron Klotz <aaron@tailscale.com>
This commit is contained in:
parent
5809386525
commit
3386a86fe5
@ -53,6 +53,29 @@ func GetRegString(name, defval string) string {
|
|||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRegInteger looks up a registry path in our local machine path, or returns
|
||||||
|
// the given default if it can't.
|
||||||
|
//
|
||||||
|
// This function will only work on GOOS=windows. Trying to run it on any other
|
||||||
|
// OS will always return the default value.
|
||||||
|
func GetRegInteger(name string, defval uint64) uint64 {
|
||||||
|
key, err := registry.OpenKey(registry.LOCAL_MACHINE, RegBase, registry.READ)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("registry.OpenKey(%v): %v", RegBase, err)
|
||||||
|
return defval
|
||||||
|
}
|
||||||
|
defer key.Close()
|
||||||
|
|
||||||
|
val, _, err := key.GetIntegerValue(name)
|
||||||
|
if err != nil {
|
||||||
|
if err != registry.ErrNotExist {
|
||||||
|
log.Printf("registry.GetIntegerValue(%v): %v", name, err)
|
||||||
|
}
|
||||||
|
return defval
|
||||||
|
}
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
kernel32 = syscall.NewLazyDLL("kernel32.dll")
|
kernel32 = syscall.NewLazyDLL("kernel32.dll")
|
||||||
procWTSGetActiveConsoleSessionId = kernel32.NewProc("WTSGetActiveConsoleSessionId")
|
procWTSGetActiveConsoleSessionId = kernel32.NewProc("WTSGetActiveConsoleSessionId")
|
||||||
|
@ -15,3 +15,10 @@ const RegBase = ``
|
|||||||
// This function will only work on GOOS=windows. Trying to run it on any other
|
// This function will only work on GOOS=windows. Trying to run it on any other
|
||||||
// OS will always return the default value.
|
// OS will always return the default value.
|
||||||
func GetRegString(name, defval string) string { return defval }
|
func GetRegString(name, defval string) string { return defval }
|
||||||
|
|
||||||
|
// GetRegInteger looks up a registry path in our local machine path, or returns
|
||||||
|
// the given default if it can't.
|
||||||
|
//
|
||||||
|
// This function will only work on GOOS=windows. Trying to run it on any other
|
||||||
|
// OS will always return the default value.
|
||||||
|
func GetRegInteger(name string, defval uint64) uint64 { return defval }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user