aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/syscall/syscall_linux.go
diff options
context:
space:
mode:
authorAndreas Jellinghaus <andreas@ionisiert.de>2012-09-12 06:38:21 -0700
committerIan Lance Taylor <iant@golang.org>2012-09-12 06:38:21 -0700
commit452d6b46a390290a350593b3756f6511b8441e74 (patch)
tree7fe26690800c9174a2068641a35f6b18a4ce98c5 /src/pkg/syscall/syscall_linux.go
parentf5f651b89a7eb028f8d9fbb50cdf0d6e2be5218e (diff)
downloadgo-452d6b46a390290a350593b3756f6511b8441e74.tar.xz
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
Diffstat (limited to 'src/pkg/syscall/syscall_linux.go')
-rw-r--r--src/pkg/syscall/syscall_linux.go7
1 files changed, 7 insertions, 0 deletions
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)