R=rsc
DELTA=5 (3 added, 0 deleted, 2 changed)
OCL=28845
CL=28849
if sa.Path[0] == '@' {
sa.Path[0] = 0;
}
+ sa.Length = 1 + int64(n) + 1; // family, name, \0
return (*syscall.Sockaddr)(unsafe.Pointer(sa)), nil;
}
func saLen(s *Sockaddr) int64 {
switch s.Family {
case AF_UNIX:
- return SizeofSockaddrUnix;
+ sa := (*SockaddrUnix)(unsafe.Pointer(s));
+ return sa.Length;
case AF_INET:
return SizeofSockaddrInet4;
case AF_INET6:
type SockaddrUnix struct {
Family uint16;
- Path [108]byte
+ Path [108]byte;
+ Length int64; // Not part of the kernel structure; used internally
}
const SizeofSockaddrUnix = 110