github.com/epfl-dcsl/gotee@v0.0.0-20200909122901-014b35f5e5e9/src/gnet/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 gnet
     9  
    10  /*
    11  #include <sys/types.h>
    12  #include <sys/socket.h>
    13  
    14  #include <netinet/in.h>
    15  */
    16  //import "C"
    17  
    18  //import (
    19  //	"syscall"
    20  //	"unsafe"
    21  //)
    22  //
    23  //func cgoSockaddrInet4(ip IP) *struct_sockaddr {
    24  //	sa := syscall.RawSockaddrInet4{Len: syscall.SizeofSockaddrInet4, Family: syscall.AF_INET}
    25  //	copy(sa.Addr[:], ip)
    26  //	return (*C.struct_sockaddr)(unsafe.Pointer(&sa))
    27  //}
    28  //
    29  //func cgoSockaddrInet6(ip IP, zone int) *C.struct_sockaddr {
    30  //	sa := syscall.RawSockaddrInet6{Len: syscall.SizeofSockaddrInet6, Family: syscall.AF_INET6, Scope_id: uint32(zone)}
    31  //	copy(sa.Addr[:], ip)
    32  //	return (*struct_sockaddr)(unsafe.Pointer(&sa))
    33  //}