summaryrefslogtreecommitdiff
path: root/src/net/sockoptip_linux.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2017-02-10 14:59:38 -0800
committerIan Lance Taylor <iant@golang.org>2017-02-13 18:36:28 +0000
commit3792db518327c685da17ca6c6faa4e1d2da4c33c (patch)
tree8d2456fa679526c8349a968aaf3cae09524aadfd /src/net/sockoptip_linux.go
parentb548eee3d96fc0b6e962a243b28121e1f37ad792 (diff)
downloadgo-git-3792db518327c685da17ca6c6faa4e1d2da4c33c.tar.gz
net: refactor poller into new internal/poll package
This will make it possible to use the poller with the os package. This is a lot of code movement but the behavior is intended to be unchanged. Update #6817. Update #7903. Update #15021. Update #18507. Change-Id: I1413685928017c32df5654ded73a2643820977ae Reviewed-on: https://go-review.googlesource.com/36799 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/net/sockoptip_linux.go')
-rw-r--r--src/net/sockoptip_linux.go18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/net/sockoptip_linux.go b/src/net/sockoptip_linux.go
index c1dcc911c7..bd7d834425 100644
--- a/src/net/sockoptip_linux.go
+++ b/src/net/sockoptip_linux.go
@@ -5,7 +5,7 @@
package net
import (
- "os"
+ "runtime"
"syscall"
)
@@ -15,17 +15,13 @@ func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error {
v = int32(ifi.Index)
}
mreq := &syscall.IPMreqn{Ifindex: v}
- if err := fd.incref(); err != nil {
- return err
- }
- defer fd.decref()
- return os.NewSyscallError("setsockopt", syscall.SetsockoptIPMreqn(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_IF, mreq))
+ err := fd.pfd.SetsockoptIPMreqn(syscall.IPPROTO_IP, syscall.IP_MULTICAST_IF, mreq)
+ runtime.KeepAlive(fd)
+ return wrapSyscallError("setsockopt", err)
}
func setIPv4MulticastLoopback(fd *netFD, v bool) error {
- if err := fd.incref(); err != nil {
- return err
- }
- defer fd.decref()
- return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_LOOP, boolint(v)))
+ err := fd.pfd.SetsockoptInt(syscall.IPPROTO_IP, syscall.IP_MULTICAST_LOOP, boolint(v))
+ runtime.KeepAlive(fd)
+ return wrapSyscallError("setsockopt", err)
}