This reverts CL 597255.
Reason for revert: Broke windows/arm64
Fixes #68822.
Updates #68312.
Change-Id: I43efabad43c74045888bb62bd27522aeaba0a64c
Reviewed-on: https://go-review.googlesource.com/c/go/+/604555
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
//
//go:linkname GetSystemDirectory
func GetSystemDirectory() string // Implemented in runtime package.
-
-// GetUserName retrieves the user name of the current thread
-// in the specified format.
-func GetUserName(format uint32) (string, error) {
- n := uint32(50)
- for {
- b := make([]uint16, n)
- e := syscall.GetUserNameEx(format, &b[0], &n)
- if e == nil {
- return syscall.UTF16ToString(b[:n]), nil
- }
- if e != syscall.ERROR_MORE_DATA {
- return "", e
- }
- if n <= uint32(len(b)) {
- return "", e
- }
- }
-}
if e != nil {
return e
}
- username, e := windows.GetUserName(syscall.NameSamCompatible)
+ username, domain, e := lookupUsernameAndDomain(u.User.Sid)
if e != nil {
return e
}
- displayName, e := windows.GetUserName(syscall.NameDisplay)
- if e != nil {
- return e
- }
- usr = &User{
- Uid: uid,
- Gid: gid,
- Username: username,
- Name: displayName,
- HomeDir: dir,
- }
- return nil
+ usr, e = newUser(uid, gid, dir, username, domain)
+ return e
})
return usr, err
}
}
func BenchmarkCurrent(b *testing.B) {
- // Benchmark current instead of Current because Current caches the result.
for i := 0; i < b.N; i++ {
- current()
+ Current()
}
}