1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 07:07:34 +00:00

LibCore: Implement socket credentials for NetBSD

This commit is contained in:
nipos 2023-02-20 15:33:46 +00:00 committed by Andreas Kling
parent e54a03d497
commit d710da108c

View file

@ -367,6 +367,9 @@ ErrorOr<pid_t> LocalSocket::peer_pid() const
#elif defined(AK_OS_OPENBSD) #elif defined(AK_OS_OPENBSD)
struct sockpeercred creds = {}; struct sockpeercred creds = {};
socklen_t creds_size = sizeof(creds); socklen_t creds_size = sizeof(creds);
#elif defined(AK_OS_NETBSD)
struct sockcred creds = {};
socklen_t creds_size = sizeof(creds);
#else #else
struct ucred creds = {}; struct ucred creds = {};
socklen_t creds_size = sizeof(creds); socklen_t creds_size = sizeof(creds);
@ -378,6 +381,9 @@ ErrorOr<pid_t> LocalSocket::peer_pid() const
#elif defined(AK_OS_FREEBSD) #elif defined(AK_OS_FREEBSD)
TRY(System::getsockopt(m_helper.fd(), SOL_LOCAL, LOCAL_PEERCRED, &creds, &creds_size)); TRY(System::getsockopt(m_helper.fd(), SOL_LOCAL, LOCAL_PEERCRED, &creds, &creds_size));
return creds.cr_pid; return creds.cr_pid;
#elif defined(AK_OS_NETBSD)
TRY(System::getsockopt(m_helper.fd(), SOL_SOCKET, SCM_CREDS, &creds, &creds_size));
return creds.sc_pid;
#else #else
TRY(System::getsockopt(m_helper.fd(), SOL_SOCKET, SO_PEERCRED, &creds, &creds_size)); TRY(System::getsockopt(m_helper.fd(), SOL_SOCKET, SO_PEERCRED, &creds, &creds_size));
return creds.pid; return creds.pid;