unix: add support for TCP_CONNECTION_INFO on macOS

x/sys provides support for accessing TCP_INFO on Linux but does
not provide support for accessing the equivalent (TCP_CONNECTION_INFO)
on macOS. This patch adds that functionality.

Fixes golang/go#53330

Change-Id: Ia1c1bf79a8bbb76f3ccfe58c61e1a82e08735152
Reviewed-on: https://go-review.googlesource.com/c/sys/+/411734
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Will Hawkins
2022-06-15 21:25:26 +00:00
committed by Gopher Robot
parent bf31f56cad
commit ff8c426e75
4 changed files with 133 additions and 69 deletions
+7
View File
@@ -393,6 +393,13 @@ func GetsockoptXucred(fd, level, opt int) (*Xucred, error) {
return x, err
}
func GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) {
var value TCPConnectionInfo
vallen := _Socklen(SizeofTCPConnectionInfo)
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
return &value, err
}
func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) {
mib, err := sysctlmib(name, args...)
if err != nil {