summaryrefslogtreecommitdiff
path: root/libgo/go/net/sockoptip_freebsd.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/net/sockoptip_freebsd.go')
-rw-r--r--libgo/go/net/sockoptip_freebsd.go24
1 files changed, 18 insertions, 6 deletions
diff --git a/libgo/go/net/sockoptip_freebsd.go b/libgo/go/net/sockoptip_freebsd.go
index 55f7b1a6025..4a3bc2e82c8 100644
--- a/libgo/go/net/sockoptip_freebsd.go
+++ b/libgo/go/net/sockoptip_freebsd.go
@@ -12,7 +12,9 @@ import (
)
func ipv4MulticastInterface(fd *netFD) (*Interface, error) {
- fd.incref()
+ if err := fd.incref(false); err != nil {
+ return nil, err
+ }
defer fd.decref()
mreq, err := syscall.GetsockoptIPMreqn(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_IF)
if err != nil {
@@ -30,7 +32,9 @@ func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error {
v = int32(ifi.Index)
}
mreq := &syscall.IPMreqn{Ifindex: v}
- fd.incref()
+ if err := fd.incref(false); err != nil {
+ return err
+ }
defer fd.decref()
err := syscall.SetsockoptIPMreqn(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_IF, mreq)
if err != nil {
@@ -40,7 +44,9 @@ func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error {
}
func ipv4MulticastLoopback(fd *netFD) (bool, error) {
- fd.incref()
+ if err := fd.incref(false); err != nil {
+ return false, err
+ }
defer fd.decref()
v, err := syscall.GetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_LOOP)
if err != nil {
@@ -50,7 +56,9 @@ func ipv4MulticastLoopback(fd *netFD) (bool, error) {
}
func setIPv4MulticastLoopback(fd *netFD, v bool) error {
- fd.incref()
+ 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))
if err != nil {
@@ -60,7 +68,9 @@ func setIPv4MulticastLoopback(fd *netFD, v bool) error {
}
func ipv4ReceiveInterface(fd *netFD) (bool, error) {
- fd.incref()
+ if err := fd.incref(false); err != nil {
+ return false, err
+ }
defer fd.decref()
v, err := syscall.GetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_RECVIF)
if err != nil {
@@ -70,7 +80,9 @@ func ipv4ReceiveInterface(fd *netFD) (bool, error) {
}
func setIPv4ReceiveInterface(fd *netFD, v bool) error {
- fd.incref()
+ if err := fd.incref(false); err != nil {
+ return err
+ }
defer fd.decref()
err := syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_RECVIF, boolint(v))
if err != nil {