1
0
mirror of https://github.com/golang/go synced 2024-11-08 09:46:24 -07:00
go/src/os/sys_windows.go
Kunpei Sakai 5a986eca86 all: fix article typos
a -> an

Change-Id: I7362bdc199e83073a712be657f5d9ba16df3077e
Reviewed-on: https://go-review.googlesource.com/63850
Reviewed-by: Rob Pike <r@golang.org>
2017-09-15 02:39:16 +00:00

34 lines
874 B
Go

// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package os
import (
"internal/syscall/windows"
"syscall"
)
func hostname() (name string, err error) {
// Use PhysicalDnsHostname to uniquely identify host in a cluster
const format = windows.ComputerNamePhysicalDnsHostname
n := uint32(64)
for {
b := make([]uint16, n)
err := windows.GetComputerNameEx(format, &b[0], &n)
if err == nil {
return syscall.UTF16ToString(b[:n]), nil
}
if err != syscall.ERROR_MORE_DATA {
return "", NewSyscallError("ComputerNameEx", err)
}
// If we received an ERROR_MORE_DATA, but n doesn't get larger,
// something has gone wrong and we may be in an infinite loop
if n <= uint32(len(b)) {
return "", NewSyscallError("ComputerNameEx", err)
}
}
}