github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/third_party/gofrontend/libgo/go/syscall/socket_solaris.go (about) 1 // socket_solaris.go -- Socket handling specific to Solaris. 2 3 // Copyright 2010 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package syscall 8 9 const SizeofSockaddrInet4 = 16 10 const SizeofSockaddrInet6 = 32 11 const SizeofSockaddrUnix = 110 12 13 type RawSockaddrInet4 struct { 14 Family uint16 15 Port uint16 16 Addr [4]byte /* in_addr */ 17 Zero [8]uint8 18 } 19 20 func (sa *RawSockaddrInet4) setLen() Socklen_t { 21 return SizeofSockaddrInet4 22 } 23 24 type RawSockaddrInet6 struct { 25 Family uint16 26 Port uint16 27 Flowinfo uint32 28 Addr [16]byte /* in6_addr */ 29 Scope_id uint32 30 Src_id uint32 31 } 32 33 func (sa *RawSockaddrInet6) setLen() Socklen_t { 34 return SizeofSockaddrInet6 35 } 36 37 type RawSockaddrUnix struct { 38 Family uint16 39 Path [108]int8 40 } 41 42 func (sa *RawSockaddrUnix) setLen(int) { 43 } 44 45 func (sa *RawSockaddrUnix) getLen() (int, error) { 46 n := 0 47 for n < len(sa.Path) && sa.Path[n] != 0 { 48 n++ 49 } 50 return n, nil 51 } 52 53 func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t { 54 return sl 55 } 56 57 type RawSockaddr struct { 58 Family uint16 59 Data [14]int8 60 } 61 62 // BindToDevice binds the socket associated with fd to device. 63 func BindToDevice(fd int, device string) (err error) { 64 return ENOSYS 65 } 66 67 func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) { 68 return nil, EAFNOSUPPORT 69 }