From 04b08da9af0c450d645ab7389d1467308cfc2db8 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 4 Mar 2013 21:27:36 +0100 Subject: Imported Upstream version 1.1~hg20130304 --- src/pkg/syscall/sockcmsg_linux.go | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'src/pkg/syscall/sockcmsg_linux.go') diff --git a/src/pkg/syscall/sockcmsg_linux.go b/src/pkg/syscall/sockcmsg_linux.go index 0b4caa1d0..a2e26a1f4 100644 --- a/src/pkg/syscall/sockcmsg_linux.go +++ b/src/pkg/syscall/sockcmsg_linux.go @@ -6,33 +6,31 @@ package syscall -import ( - "unsafe" -) +import "unsafe" // UnixCredentials encodes credentials into a socket control message // for sending to another process. This can be used for // authentication. func UnixCredentials(ucred *Ucred) []byte { - buf := make([]byte, CmsgSpace(SizeofUcred)) - cmsg := (*Cmsghdr)(unsafe.Pointer(&buf[0])) - cmsg.Level = SOL_SOCKET - cmsg.Type = SCM_CREDENTIALS - cmsg.SetLen(CmsgLen(SizeofUcred)) - *((*Ucred)(cmsgData(cmsg))) = *ucred - return buf + b := make([]byte, CmsgSpace(SizeofUcred)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_CREDENTIALS + h.SetLen(CmsgLen(SizeofUcred)) + *((*Ucred)(cmsgData(h))) = *ucred + return b } // ParseUnixCredentials decodes a socket control message that contains // credentials in a Ucred structure. To receive such a message, the // SO_PASSCRED option must be enabled on the socket. -func ParseUnixCredentials(msg *SocketControlMessage) (*Ucred, error) { - if msg.Header.Level != SOL_SOCKET { +func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { + if m.Header.Level != SOL_SOCKET { return nil, EINVAL } - if msg.Header.Type != SCM_CREDENTIALS { + if m.Header.Type != SCM_CREDENTIALS { return nil, EINVAL } - ucred := *(*Ucred)(unsafe.Pointer(&msg.Data[0])) + ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) return &ucred, nil } -- cgit v1.2.3