event/ServerSocket: pass SocketDescriptor to get_remote_uid()

This commit is contained in:
Max Kellermann 2025-01-29 17:54:07 +01:00
parent 70f1f9cff8
commit 3710b54d43

@ -102,13 +102,13 @@ private:
static constexpr Domain server_socket_domain("server_socket"); static constexpr Domain server_socket_domain("server_socket");
static int static int
get_remote_uid(int fd) get_remote_uid(SocketDescriptor s) noexcept
{ {
#ifdef HAVE_STRUCT_UCRED #ifdef HAVE_STRUCT_UCRED
struct ucred cred; struct ucred cred;
socklen_t len = sizeof (cred); socklen_t len = sizeof (cred);
if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &cred, &len) < 0) if (getsockopt(s.Get(), SOL_SOCKET, SO_PEERCRED, &cred, &len) < 0)
return -1; return -1;
return cred.uid; return cred.uid;
@ -117,10 +117,10 @@ get_remote_uid(int fd)
uid_t euid; uid_t euid;
gid_t egid; gid_t egid;
if (getpeereid(fd, &euid, &egid) == 0) if (getpeereid(s.Get(), &euid, &egid) == 0)
return euid; return euid;
#else #else
(void)fd; (void)s;
#endif #endif
return -1; return -1;
#endif #endif
@ -145,7 +145,7 @@ ServerSocket::OneServerSocket::Accept() noexcept
(const char *)msg); (const char *)msg);
} }
const auto uid = get_remote_uid(peer_fd.Get()); const auto uid = get_remote_uid(peer_fd);
parent.OnAccept(std::move(peer_fd), peer_address, uid); parent.OnAccept(std::move(peer_fd), peer_address, uid);
} }