...
Run Format

Source file src/os/sys_windows.go

Documentation: os

  // 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 a 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)
  		}
  	}
  }
  

View as plain text