github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/golang.org/x/net/internal/socket/sys_windows.go (about)

     1  // Copyright 2017 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  package socket
     6  
     7  import (
     8  	"syscall"
     9  	"unsafe"
    10  )
    11  
    12  func probeProtocolStack() int {
    13  	var p uintptr
    14  	return int(unsafe.Sizeof(p))
    15  }
    16  
    17  const (
    18  	sysAF_UNSPEC = 0x0
    19  	sysAF_INET   = 0x2
    20  	sysAF_INET6  = 0x17
    21  
    22  	sysSOCK_RAW = 0x3
    23  )
    24  
    25  type sockaddrInet struct {
    26  	Family uint16
    27  	Port   uint16
    28  	Addr   [4]byte /* in_addr */
    29  	Zero   [8]uint8
    30  }
    31  
    32  type sockaddrInet6 struct {
    33  	Family   uint16
    34  	Port     uint16
    35  	Flowinfo uint32
    36  	Addr     [16]byte /* in6_addr */
    37  	Scope_id uint32
    38  }
    39  
    40  const (
    41  	sizeofSockaddrInet  = 0x10
    42  	sizeofSockaddrInet6 = 0x1c
    43  )
    44  
    45  func getsockopt(s uintptr, level, name int, b []byte) (int, error) {
    46  	l := uint32(len(b))
    47  	err := syscall.Getsockopt(syscall.Handle(s), int32(level), int32(name), (*byte)(unsafe.Pointer(&b[0])), (*int32)(unsafe.Pointer(&l)))
    48  	return int(l), err
    49  }
    50  
    51  func setsockopt(s uintptr, level, name int, b []byte) error {
    52  	return syscall.Setsockopt(syscall.Handle(s), int32(level), int32(name), (*byte)(unsafe.Pointer(&b[0])), int32(len(b)))
    53  }
    54  
    55  func recvmsg(s uintptr, h *msghdr, flags int) (int, error) {
    56  	return 0, errNotImplemented
    57  }
    58  
    59  func sendmsg(s uintptr, h *msghdr, flags int) (int, error) {
    60  	return 0, errNotImplemented
    61  }
    62  
    63  func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
    64  	return 0, errNotImplemented
    65  }
    66  
    67  func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
    68  	return 0, errNotImplemented
    69  }