Add Solaris version of os.Hostname.
From-SVN: r169350
This commit is contained in:
parent
0047207685
commit
51677e0338
3 changed files with 45 additions and 2 deletions
|
@ -657,6 +657,20 @@ go_netchan_files = \
|
|||
go/netchan/export.go \
|
||||
go/netchan/import.go
|
||||
|
||||
if LIBGO_IS_LINUX
|
||||
go_os_sys_file = go/os/sys_linux.go
|
||||
else
|
||||
if LIBGO_IS_SOLARIS
|
||||
go_os_sys_file = go/os/sys_uname.go
|
||||
else
|
||||
if LIBGO_IS_RTEMS
|
||||
go_os_sys_file = go/os/sys_uname.go
|
||||
else
|
||||
go_os_sys_file = go/os/sys_bsd.go
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
go_os_files = \
|
||||
go/os/dir.go \
|
||||
go/os/env.go \
|
||||
|
@ -669,7 +683,7 @@ go_os_files = \
|
|||
go/os/path.go \
|
||||
go/os/proc.go \
|
||||
go/os/stat.go \
|
||||
go/os/sys_linux.go \
|
||||
$(go_os_sys_file) \
|
||||
go/os/time.go \
|
||||
go/os/types.go
|
||||
|
||||
|
|
|
@ -1037,6 +1037,10 @@ go_netchan_files = \
|
|||
go/netchan/export.go \
|
||||
go/netchan/import.go
|
||||
|
||||
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_bsd.go
|
||||
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_uname.go
|
||||
@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_os_sys_file = go/os/sys_uname.go
|
||||
@LIBGO_IS_LINUX_TRUE@go_os_sys_file = go/os/sys_linux.go
|
||||
go_os_files = \
|
||||
go/os/dir.go \
|
||||
go/os/env.go \
|
||||
|
@ -1049,7 +1053,7 @@ go_os_files = \
|
|||
go/os/path.go \
|
||||
go/os/proc.go \
|
||||
go/os/stat.go \
|
||||
go/os/sys_linux.go \
|
||||
$(go_os_sys_file) \
|
||||
go/os/time.go \
|
||||
go/os/types.go
|
||||
|
||||
|
|
25
libgo/go/os/sys_uname.go
Normal file
25
libgo/go/os/sys_uname.go
Normal file
|
@ -0,0 +1,25 @@
|
|||
// Copyright 2011 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.
|
||||
|
||||
// For systems which only store the hostname in uname (Solaris).
|
||||
|
||||
package os
|
||||
|
||||
import "syscall"
|
||||
|
||||
func Hostname() (name string, err Error) {
|
||||
var u syscall.Utsname
|
||||
if errno := syscall.Uname(&u); errno != 0 {
|
||||
return "", NewSyscallError("uname", errno)
|
||||
}
|
||||
b := make([]byte, len(u.Nodename))
|
||||
i := 0
|
||||
for ; i < len(u.Nodename); i++ {
|
||||
if u.Nodename[i] == 0 {
|
||||
break
|
||||
}
|
||||
b[i] = byte(u.Nodename[i])
|
||||
}
|
||||
return string(b[:i]), nil
|
||||
}
|
Loading…
Add table
Reference in a new issue