From d710da108ca71db7209db6318be04c25132cf32d Mon Sep 17 00:00:00 2001 From: nipos Date: Mon, 20 Feb 2023 15:33:46 +0000 Subject: [PATCH] LibCore: Implement socket credentials for NetBSD --- Userland/Libraries/LibCore/Socket.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Userland/Libraries/LibCore/Socket.cpp b/Userland/Libraries/LibCore/Socket.cpp index 4e3808c191..d32577f9ee 100644 --- a/Userland/Libraries/LibCore/Socket.cpp +++ b/Userland/Libraries/LibCore/Socket.cpp @@ -367,6 +367,9 @@ ErrorOr LocalSocket::peer_pid() const #elif defined(AK_OS_OPENBSD) struct sockpeercred creds = {}; socklen_t creds_size = sizeof(creds); +#elif defined(AK_OS_NETBSD) + struct sockcred creds = {}; + socklen_t creds_size = sizeof(creds); #else struct ucred creds = {}; socklen_t creds_size = sizeof(creds); @@ -378,6 +381,9 @@ ErrorOr LocalSocket::peer_pid() const #elif defined(AK_OS_FREEBSD) TRY(System::getsockopt(m_helper.fd(), SOL_LOCAL, LOCAL_PEERCRED, &creds, &creds_size)); 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 TRY(System::getsockopt(m_helper.fd(), SOL_SOCKET, SO_PEERCRED, &creds, &creds_size)); return creds.pid;