diff options
| author | Mikio Hara <mikioh.mikioh@gmail.com> | 2011-10-01 18:45:06 +0900 |
|---|---|---|
| committer | Mikio Hara <mikioh.mikioh@gmail.com> | 2011-10-01 18:45:06 +0900 |
| commit | 71517e7b4acc12a426ebe0b45899a8ba19784ae9 (patch) | |
| tree | b0e579ba8465fd2651ff216f27263d6e29c26060 /src/pkg/syscall/syscall_linux.go | |
| parent | 723f73caec99e6ff0e930027d470ff48f898a735 (diff) | |
| download | go-71517e7b4acc12a426ebe0b45899a8ba19784ae9.tar.xz | |
syscall: update multicast socket options for darwin, freebsd, linux, openbsd
R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/5137042
Diffstat (limited to 'src/pkg/syscall/syscall_linux.go')
| -rw-r--r-- | src/pkg/syscall/syscall_linux.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/pkg/syscall/syscall_linux.go b/src/pkg/syscall/syscall_linux.go index 9fc2605c4b..d4eb1bf923 100644 --- a/src/pkg/syscall/syscall_linux.go +++ b/src/pkg/syscall/syscall_linux.go @@ -450,11 +450,42 @@ 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 GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, int) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + 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 SetsockoptInt(fd, level, opt int, value int) (errno int) { var n = int32(value) 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)) } @@ -467,6 +498,10 @@ func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (errno int) { return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(mreq)), unsafe.Sizeof(*mreq)) } +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (errno int) { + return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(mreq)), unsafe.Sizeof(*mreq)) +} + func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (errno int) { return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(mreq)), unsafe.Sizeof(*mreq)) } |
