From 452d6b46a390290a350593b3756f6511b8441e74 Mon Sep 17 00:00:00 2001 From: Andreas Jellinghaus Date: Wed, 12 Sep 2012 06:38:21 -0700 Subject: [PATCH] syscall: add linux specific Getsockopt for Ucred struct SO_PEERCRED on unix domain socket will fill a Ucred struct, thus linux needs a custom Getsockopt variant. Fixes #3836. R=golang-dev, rsc, iant CC=golang-dev https://golang.org/cl/6445104 --- src/pkg/syscall/syscall_linux.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/pkg/syscall/syscall_linux.go b/src/pkg/syscall/syscall_linux.go index fbe6b04576..797e46c0cb 100644 --- a/src/pkg/syscall/syscall_linux.go +++ b/src/pkg/syscall/syscall_linux.go @@ -477,6 +477,13 @@ func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { return &value, err } +func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { + var value Ucred + vallen := _Socklen(SizeofUcred) + err := getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value)), &vallen) + return &value, err +} + func SetsockoptInt(fd, level, opt int, value int) (err error) { var n = int32(value) return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 4) -- 2.48.1