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 }