Sfoglia il codice sorgente

LibCore: Implement socket credentials for NetBSD

nipos 2 anni fa
parent
commit
d710da108c
1 ha cambiato i file con 6 aggiunte e 0 eliminazioni
  1. 6 0
      Userland/Libraries/LibCore/Socket.cpp

+ 6 - 0
Userland/Libraries/LibCore/Socket.cpp

@@ -367,6 +367,9 @@ ErrorOr<pid_t> 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<pid_t> 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;