mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-02 23:27:31 -04:00
unix: add GetsockoptUint64 and SetsockoptUint64
The AF_VSOCK address family on Linux uses unsigned long long (uint64 in Go) values for getting and setting some socket options. Change-Id: If28f6a5d04c0c988b7cbcaf2bf8d184a69329882 Reviewed-on: https://go-review.googlesource.com/c/sys/+/169959 Run-TryBot: Matt Layher <mdlayher@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
@@ -294,6 +294,13 @@ func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {
|
|||||||
return &tv, err
|
return &tv, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetsockoptUint64(fd, level, opt int) (value uint64, err error) {
|
||||||
|
var n uint64
|
||||||
|
vallen := _Socklen(8)
|
||||||
|
err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
|
func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
|
||||||
var rsa RawSockaddrAny
|
var rsa RawSockaddrAny
|
||||||
var len _Socklen = SizeofSockaddrAny
|
var len _Socklen = SizeofSockaddrAny
|
||||||
@@ -351,6 +358,10 @@ func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {
|
|||||||
return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))
|
return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetsockoptUint64(fd, level, opt int, value uint64) (err error) {
|
||||||
|
return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)
|
||||||
|
}
|
||||||
|
|
||||||
func Socket(domain, typ, proto int) (fd int, err error) {
|
func Socket(domain, typ, proto int) (fd int, err error) {
|
||||||
if domain == AF_INET6 && SocketDisableIPv6 {
|
if domain == AF_INET6 && SocketDisableIPv6 {
|
||||||
return -1, EAFNOSUPPORT
|
return -1, EAFNOSUPPORT
|
||||||
|
|||||||
Reference in New Issue
Block a user