diff options
Diffstat (limited to 'src/pkg/net/sockoptip_windows.go')
-rw-r--r-- | src/pkg/net/sockoptip_windows.go | 61 |
1 files changed, 6 insertions, 55 deletions
diff --git a/src/pkg/net/sockoptip_windows.go b/src/pkg/net/sockoptip_windows.go index b9db3334d..3e248441a 100644 --- a/src/pkg/net/sockoptip_windows.go +++ b/src/pkg/net/sockoptip_windows.go @@ -2,90 +2,41 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// IP-level socket options for Windows - package net import ( "os" "syscall" + "unsafe" ) -func ipv4MulticastInterface(fd *netFD) (*Interface, error) { - // TODO: Implement this - return nil, syscall.EWINDOWS -} - func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error { ip, err := interfaceToIPv4Addr(ifi) if err != nil { return os.NewSyscallError("setsockopt", err) } - var x [4]byte - copy(x[:], ip.To4()) + var a [4]byte + copy(a[:], ip.To4()) if err := fd.incref(false); err != nil { return err } defer fd.decref() - err = syscall.SetsockoptInet4Addr(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_IF, x) + err = syscall.Setsockopt(fd.sysfd, int32(syscall.IPPROTO_IP), int32(syscall.IP_MULTICAST_IF), (*byte)(unsafe.Pointer(&a[0])), 4) if err != nil { return os.NewSyscallError("setsockopt", err) } return nil } -func ipv4MulticastTTL(fd *netFD) (int, error) { - // TODO: Implement this - return -1, syscall.EWINDOWS -} - -func setIPv4MulticastTTL(fd *netFD, v int) error { - if err := fd.incref(false); err != nil { - return err - } - defer fd.decref() - err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_TTL, v) - if err != nil { - return os.NewSyscallError("setsockopt", err) - } - return nil - -} - -func ipv4MulticastLoopback(fd *netFD) (bool, error) { - // TODO: Implement this - return false, syscall.EWINDOWS -} - func setIPv4MulticastLoopback(fd *netFD, v bool) error { if err := fd.incref(false); err != nil { return err } defer fd.decref() - err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_LOOP, boolint(v)) + vv := int32(boolint(v)) + err := syscall.Setsockopt(fd.sysfd, int32(syscall.IPPROTO_IP), int32(syscall.IP_MULTICAST_LOOP), (*byte)(unsafe.Pointer(&vv)), 4) if err != nil { return os.NewSyscallError("setsockopt", err) } return nil - -} - -func ipv4ReceiveInterface(fd *netFD) (bool, error) { - // TODO: Implement this - return false, syscall.EWINDOWS -} - -func setIPv4ReceiveInterface(fd *netFD, v bool) error { - // TODO: Implement this - return syscall.EWINDOWS -} - -func ipv6TrafficClass(fd *netFD) (int, error) { - // TODO: Implement this - return 0, syscall.EWINDOWS -} - -func setIPv6TrafficClass(fd *netFD, v int) error { - // TODO: Implement this - return syscall.EWINDOWS } |