nps/lib/mux/sysGetsock_windows.go

47 lines
943 B
Go
Raw Normal View History

2019-12-27 15:24:19 +00:00
// +build windows
package mux
import (
"errors"
2019-12-28 12:40:00 +00:00
"github.com/xtaci/kcp-go"
2019-12-27 15:24:19 +00:00
"net"
"os"
)
func sysGetSock(fd *os.File) (bufferSize int, err error) {
// https://github.com/golang/sys/blob/master/windows/syscall_windows.go#L1184
// not support, WTF???
2019-12-28 12:40:00 +00:00
// Todo
2019-12-27 15:24:19 +00:00
// return syscall.GetsockoptInt((syscall.Handle)(unsafe.Pointer(fd.Fd())), syscall.SOL_SOCKET, syscall.SO_RCVBUF)
bufferSize = 10 * 1024 * 1024
return
}
func getConnFd(c net.Conn) (fd *os.File, err error) {
switch c.(type) {
case *net.TCPConn:
//fd, err = c.(*net.TCPConn).File()
//if err != nil {
// return
//}
return
case *net.UDPConn:
//fd, err = c.(*net.UDPConn).File()
//if err != nil {
// return
//}
return
2019-12-28 12:40:00 +00:00
case *kcp.UDPSession:
//fd, err = (*net.UDPConn)(unsafe.Pointer(c.(*kcp.UDPSession))).File()
//if err != nil {
// return
//}
// Todo
return
2019-12-27 15:24:19 +00:00
default:
err = errors.New("mux:unknown conn type, only tcp or kcp")
return
}
}