Browse Source

LibCore: Add OpenBSD headers to System and LocalSocket

Add the correct header to System.h and add OpenBSD-specific handling of
signals and socket process id
tuftedocelot 3 years ago
parent
commit
ea0a002468

+ 3 - 0
Userland/Libraries/LibCore/LocalSocket.cpp

@@ -65,6 +65,9 @@ pid_t LocalSocket::peer_pid() const
 #elif defined(__FreeBSD__)
 #elif defined(__FreeBSD__)
     struct xucred creds = {};
     struct xucred creds = {};
     socklen_t creds_size = sizeof(creds);
     socklen_t creds_size = sizeof(creds);
+#elif defined(__OpenBSD__)
+    struct sockpeercred 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);

+ 1 - 1
Userland/Libraries/LibCore/System.cpp

@@ -131,7 +131,7 @@ ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigac
     return {};
     return {};
 }
 }
 
 
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__OpenBSD__)
 ErrorOr<sig_t> signal(int signal, sig_t handler)
 ErrorOr<sig_t> signal(int signal, sig_t handler)
 #else
 #else
 ErrorOr<sighandler_t> signal(int signal, sighandler_t handler)
 ErrorOr<sighandler_t> signal(int signal, sighandler_t handler)

+ 1 - 1
Userland/Libraries/LibCore/System.h

@@ -41,7 +41,7 @@ ErrorOr<int> accept4(int sockfd, struct sockaddr*, socklen_t*, int flags);
 #endif
 #endif
 
 
 ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigaction* old_action);
 ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigaction* old_action);
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__OpenBSD__)
 ErrorOr<sig_t> signal(int signal, sig_t handler);
 ErrorOr<sig_t> signal(int signal, sig_t handler);
 #else
 #else
 ErrorOr<sighandler_t> signal(int signal, sighandler_t handler);
 ErrorOr<sighandler_t> signal(int signal, sighandler_t handler);