diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2016-02-26 17:36:00 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2016-02-26 17:36:00 +0000 |
commit | 6b2cd37bd965bb51f2fd098c164f2441ad4f525c (patch) | |
tree | a5186cce77f730c3331fe4e1f4ce3afcff5ff594 /libgo/go | |
parent | 9ece21a6c56ee2b000f194d8fa591d7348b45afb (diff) | |
download | gcc-6b2cd37bd965bb51f2fd098c164f2441ad4f525c.tar.gz |
re PR go/69966 (libgo: Port syscall.SetsockoptUcred from golang)
PR go/69966
syscall: Add new Getsockopt functions.
Add GetsockoptICMPv6Filter, GetsockoptIPv6MTUInfo, GetsockoptUcred as
appropriate. These functions exist in the master library.
For GCC PR 69966.
Reviewed-on: https://go-review.googlesource.com/19960
From-SVN: r233747
Diffstat (limited to 'libgo/go')
-rw-r--r-- | libgo/go/syscall/socket.go | 7 | ||||
-rw-r--r-- | libgo/go/syscall/socket_bsd.go | 7 | ||||
-rw-r--r-- | libgo/go/syscall/socket_linux.go | 14 |
3 files changed, 28 insertions, 0 deletions
diff --git a/libgo/go/syscall/socket.go b/libgo/go/syscall/socket.go index d96a717303b..93bbc389f4d 100644 --- a/libgo/go/syscall/socket.go +++ b/libgo/go/syscall/socket.go @@ -251,6 +251,13 @@ func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { return &value, err } +func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { + var value ICMPv6Filter + vallen := Socklen_t(SizeofICMPv6Filter) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + //sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen Socklen_t) (err error) //setsockopt(s _C_int, level _C_int, optname _C_int, val *byte, vallen Socklen_t) _C_int diff --git a/libgo/go/syscall/socket_bsd.go b/libgo/go/syscall/socket_bsd.go index 72d7180b6ed..c8da1022218 100644 --- a/libgo/go/syscall/socket_bsd.go +++ b/libgo/go/syscall/socket_bsd.go @@ -80,3 +80,10 @@ func BindToDevice(fd int, device string) (err error) { func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) { return nil, EAFNOSUPPORT } + +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := Socklen_t(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} diff --git a/libgo/go/syscall/socket_linux.go b/libgo/go/syscall/socket_linux.go index 5064e771221..3c3098e0564 100644 --- a/libgo/go/syscall/socket_linux.go +++ b/libgo/go/syscall/socket_linux.go @@ -168,6 +168,20 @@ func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) { return nil, EAFNOSUPPORT } +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := Socklen_t(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { + var value Ucred + vallen := Socklen_t(SizeofUcred) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + //sysnb EpollCreate(size int) (fd int, err error) //epoll_create(size _C_int) _C_int |