event/ServerSocket: pass SocketDescriptor to get_remote_uid()
This commit is contained in:
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);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user