Add the correct header to System.h and add OpenBSD-specific handling of signals and socket process id
@@ -65,6 +65,9 @@ pid_t LocalSocket::peer_pid() const
#elif defined(__FreeBSD__)
struct xucred creds = {};
socklen_t creds_size = sizeof(creds);
+#elif defined(__OpenBSD__)
+ struct sockpeercred creds = {};
+ socklen_t creds_size = sizeof(creds);
#else
struct ucred creds = {};
@@ -131,7 +131,7 @@ ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigac
return {};
}
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__OpenBSD__)
ErrorOr<sig_t> signal(int signal, sig_t handler)
ErrorOr<sighandler_t> signal(int signal, sighandler_t handler)
@@ -41,7 +41,7 @@ ErrorOr<int> accept4(int sockfd, struct sockaddr*, socklen_t*, int flags);
#endif
ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigaction* old_action);
ErrorOr<sig_t> signal(int signal, sig_t handler);
ErrorOr<sighandler_t> signal(int signal, sighandler_t handler);