aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/syscall/syscall_linux.go
diff options
context:
space:
mode:
authorMikio Hara <mikioh.mikioh@gmail.com>2011-10-01 18:45:06 +0900
committerMikio Hara <mikioh.mikioh@gmail.com>2011-10-01 18:45:06 +0900
commit71517e7b4acc12a426ebe0b45899a8ba19784ae9 (patch)
treeb0e579ba8465fd2651ff216f27263d6e29c26060 /src/pkg/syscall/syscall_linux.go
parent723f73caec99e6ff0e930027d470ff48f898a735 (diff)
downloadgo-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.go35
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))
}