syscall: update multicast socket options for darwin, freebsd, linux, openbsd

R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/5137042
This commit is contained in:
Mikio Hara 2011-10-01 18:45:06 +09:00
parent 723f73caec
commit 71517e7b4a
10 changed files with 109 additions and 0 deletions

View file

@ -377,6 +377,26 @@ func GetsockoptInt(fd, level, opt int) (value, errno int) {
return int(n), errno
}
func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, errno int) {
vallen := _Socklen(4)
errno = getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value[0])), &vallen)
return value, errno
}
func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, int) {
var value IPMreq
vallen := _Socklen(SizeofIPMreq)
errno := getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value)), &vallen)
return &value, errno
}
func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, int) {
var value IPv6Mreq
vallen := _Socklen(SizeofIPv6Mreq)
errno := getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value)), &vallen)
return &value, errno
}
func SetsockoptByte(fd, level, opt int, value byte) (errno int) {
var n = byte(value)
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 1)
@ -387,6 +407,10 @@ func SetsockoptInt(fd, level, opt int, value int) (errno int) {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 4)
}
func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (errno int) {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value[0])), 4)
}
func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (errno int) {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(tv)), unsafe.Sizeof(*tv))
}