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  }