From 13d03a9a82fba647c21a0ef8fba44a795d0f0835 Mon Sep 17 00:00:00 2001 From: Cholerae Hu Date: Mon, 26 Mar 2018 20:16:02 +0800 Subject: [PATCH] unix: add GetsockoptLinger and GetsockoptTimeval Fixes golang/go#24515 Change-Id: Icac78e8f2937668c2ce2fd6a695ce44bb702b8f1 Reviewed-on: https://go-review.googlesource.com/102515 Run-TryBot: Tobias Klauser TryBot-Result: Gobot Gobot Reviewed-by: Tobias Klauser --- unix/syscall_unix.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/unix/syscall_unix.go b/unix/syscall_unix.go index 95ce5557..8c66ae51 100644 --- a/unix/syscall_unix.go +++ b/unix/syscall_unix.go @@ -206,6 +206,20 @@ func GetsockoptInt(fd, level, opt int) (value int, err error) { return int(n), err } +func GetsockoptLinger(fd, level, opt int) (*Linger, error) { + var linger Linger + vallen := _Socklen(SizeofLinger) + err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) + return &linger, err +} + +func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { + var tv Timeval + vallen := _Socklen(unsafe.Sizeof(tv)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) + return &tv, err +} + func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { var rsa RawSockaddrAny var len _Socklen = SizeofSockaddrAny