68
func setsockoptInt(fd, level, opt int, value int) os.Error {
69
return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, level, opt, value))
67
func setsockoptInt(fd *netFD, level, opt int, value int) os.Error {
68
return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, level, opt, value))
72
func setsockoptNsec(fd, level, opt int, nsec int64) os.Error {
71
func setsockoptNsec(fd *netFD, level, opt int, nsec int64) os.Error {
73
72
var tv = syscall.NsecToTimeval(nsec)
74
return os.NewSyscallError("setsockopt", syscall.SetsockoptTimeval(fd, level, opt, &tv))
73
return os.NewSyscallError("setsockopt", syscall.SetsockoptTimeval(fd.sysfd, level, opt, &tv))
77
76
func setReadBuffer(fd *netFD, bytes int) os.Error {
80
return setsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_RCVBUF, bytes)
79
return setsockoptInt(fd, syscall.SOL_SOCKET, syscall.SO_RCVBUF, bytes)
83
82
func setWriteBuffer(fd *netFD, bytes int) os.Error {
86
return setsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_SNDBUF, bytes)
85
return setsockoptInt(fd, syscall.SOL_SOCKET, syscall.SO_SNDBUF, bytes)
89
88
func setReadTimeout(fd *netFD, nsec int64) os.Error {
106
105
func setReuseAddr(fd *netFD, reuse bool) os.Error {
108
107
defer fd.decref()
109
return setsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, boolint(reuse))
108
return setsockoptInt(fd, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, boolint(reuse))
112
111
func bindToDevice(fd *netFD, dev string) os.Error {
117
116
func setDontRoute(fd *netFD, dontroute bool) os.Error {
119
118
defer fd.decref()
120
return setsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_DONTROUTE, boolint(dontroute))
119
return setsockoptInt(fd, syscall.SOL_SOCKET, syscall.SO_DONTROUTE, boolint(dontroute))
123
122
func setKeepAlive(fd *netFD, keepalive bool) os.Error {
125
124
defer fd.decref()
126
return setsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_KEEPALIVE, boolint(keepalive))
125
return setsockoptInt(fd, syscall.SOL_SOCKET, syscall.SO_KEEPALIVE, boolint(keepalive))
129
128
func setNoDelay(fd *netFD, noDelay bool) os.Error {
131
130
defer fd.decref()
132
return setsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_NODELAY, boolint(noDelay))
131
return setsockoptInt(fd, syscall.IPPROTO_TCP, syscall.TCP_NODELAY, boolint(noDelay))
135
134
func setLinger(fd *netFD, sec int) os.Error {