github.com/axw/llgo@v0.0.0-20160805011314-95b5fe4dca20/third_party/gofrontend/libgo/go/net/cgo_sockold.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build cgo,!netgo 6 // +build darwin dragonfly freebsd netbsd openbsd 7 8 package net 9 10 /* 11 #include <sys/types.h> 12 #include <sys/socket.h> 13 14 #include <netinet/in.h> 15 */ 16 17 import ( 18 "syscall" 19 "unsafe" 20 ) 21 22 func cgoSockaddrInet4(ip IP) *syscall.RawSockaddr { 23 sa := syscall.RawSockaddrInet4{Len: syscall.SizeofSockaddrInet4, Family: syscall.AF_INET} 24 copy(sa.Addr[:], ip) 25 return (*syscall.RawSockaddr)(unsafe.Pointer(&sa)) 26 } 27 28 func cgoSockaddrInet6(ip IP) *syscall.RawSockaddr { 29 sa := syscall.RawSockaddrInet6{Len: syscall.SizeofSockaddrInet6, Family: syscall.AF_INET6} 30 copy(sa.Addr[:], ip) 31 return (*syscall.RawSockaddr)(unsafe.Pointer(&sa)) 32 }