github.com/rakyll/go@v0.0.0-20170216000551-64c02460d703/src/internal/poll/sockopt.go (about) 1 // Copyright 2009 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 // +build darwin dragonfly freebsd linux netbsd openbsd solaris windows 6 7 package poll 8 9 import ( 10 "syscall" 11 ) 12 13 // SetsockoptInt wraps the setsockopt network call with an int argument. 14 func (fd *FD) SetsockoptInt(level, name, arg int) error { 15 if err := fd.incref(); err != nil { 16 return err 17 } 18 defer fd.decref() 19 return syscall.SetsockoptInt(fd.Sysfd, level, name, arg) 20 } 21 22 // SetsockoptInet4Addr wraps the setsockopt network call with an IPv4 address. 23 func (fd *FD) SetsockoptInet4Addr(level, name int, arg [4]byte) error { 24 if err := fd.incref(); err != nil { 25 return err 26 } 27 defer fd.decref() 28 return syscall.SetsockoptInet4Addr(fd.Sysfd, level, name, arg) 29 } 30 31 // SetsockoptLinger wraps the setsockopt network call with a Linger argument. 32 func (fd *FD) SetsockoptLinger(level, name int, l *syscall.Linger) error { 33 if err := fd.incref(); err != nil { 34 return err 35 } 36 defer fd.decref() 37 return syscall.SetsockoptLinger(fd.Sysfd, level, name, l) 38 }