Use proper struct sockpeercred for SO_PEERCRED for OpenBSD

getsockopt(2) documents this;  ucred is wrong ("cr_" member prefix, no pid).
This commit is contained in:
kn 2023-03-11 19:43:04 +00:00 committed by John Ericson
parent a09360400b
commit 10ccdb7a41

View file

@ -203,7 +203,11 @@ static PeerInfo getPeerInfo(int remote)
#if defined(SO_PEERCRED) #if defined(SO_PEERCRED)
ucred cred; # if defined(__OpenBSD__)
struct sockpeercred cred;
# else
ucred cred;
# endif
socklen_t credLen = sizeof(cred); socklen_t credLen = sizeof(cred);
if (getsockopt(remote, SOL_SOCKET, SO_PEERCRED, &cred, &credLen) == -1) if (getsockopt(remote, SOL_SOCKET, SO_PEERCRED, &cred, &credLen) == -1)
throw SysError("getting peer credentials"); throw SysError("getting peer credentials");