mirror of
https://github.com/kubernetes-sigs/descheduler.git
synced 2026-01-28 06:29:29 +01:00
Bumps [github.com/golang/glog](https://github.com/golang/glog) from 1.2.2 to 1.2.4. - [Release notes](https://github.com/golang/glog/releases) - [Commits](https://github.com/golang/glog/compare/v1.2.2...v1.2.4) --- updated-dependencies: - dependency-name: github.com/golang/glog dependency-version: 1.2.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
44 lines
1.4 KiB
Go
Vendored
44 lines
1.4 KiB
Go
Vendored
//go:build windows
|
|
|
|
package glog
|
|
|
|
import (
|
|
"os"
|
|
"syscall"
|
|
)
|
|
|
|
// shouldRegisterStderrSink determines whether we should register a log sink that writes to stderr.
|
|
// Today, this checks if stderr is "valid", in that it maps to a non-NULL Handle.
|
|
// Windows Services are spawned without Stdout and Stderr, so any attempt to use them equates to
|
|
// referencing an invalid file Handle.
|
|
// os.Stderr's FD is derived from a call to `syscall.GetStdHandle(syscall.STD_ERROR_HANDLE)`.
|
|
// Documentation[1] for the GetStdHandle function indicates the return value may be NULL if the
|
|
// application lacks the standard handle, so consider Stderr valid if its FD is non-NULL.
|
|
// [1]: https://learn.microsoft.com/en-us/windows/console/getstdhandle
|
|
func shouldRegisterStderrSink() bool {
|
|
return os.Stderr.Fd() != 0
|
|
}
|
|
|
|
// This follows the logic in the standard library's user.Current() function, except
|
|
// that it leaves out the potentially expensive calls required to look up the user's
|
|
// display name in Active Directory.
|
|
func lookupUser() string {
|
|
token, err := syscall.OpenCurrentProcessToken()
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
defer token.Close()
|
|
tokenUser, err := token.GetTokenUser()
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
username, _, accountType, err := tokenUser.User.Sid.LookupAccount("")
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
if accountType != syscall.SidTypeUser {
|
|
return ""
|
|
}
|
|
return username
|
|
}
|