diff --git a/src/client/Listener.cxx b/src/client/Listener.cxx index af15a0d07..45af7161b 100644 --- a/src/client/Listener.cxx +++ b/src/client/Listener.cxx @@ -4,6 +4,7 @@ #include "Listener.hxx" #include "Client.hxx" #include "Permission.hxx" +#include "net/PeerCredentials.hxx" #include "net/UniqueSocketDescriptor.hxx" #include "net/SocketAddress.hxx" #include "config.h" @@ -29,8 +30,10 @@ GetPermissions(SocketAddress address, int uid) noexcept void ClientListener::OnAccept(UniqueSocketDescriptor fd, - SocketAddress address, int uid) noexcept + SocketAddress address) noexcept { + const auto cred = fd.GetPeerCredentials(); + const int uid = cred.IsDefined() ? static_cast<int>(cred.GetUid()) : -1; client_new(GetEventLoop(), partition, std::move(fd), address, uid, diff --git a/src/client/Listener.hxx b/src/client/Listener.hxx index c1e3a1564..bd3566cc1 100644 --- a/src/client/Listener.hxx +++ b/src/client/Listener.hxx @@ -17,7 +17,7 @@ public: private: void OnAccept(UniqueSocketDescriptor fd, - SocketAddress address, int uid) noexcept override; + SocketAddress address) noexcept override; }; #endif diff --git a/src/event/ServerSocket.cxx b/src/event/ServerSocket.cxx index 5e221d3de..0578b14a8 100644 --- a/src/event/ServerSocket.cxx +++ b/src/event/ServerSocket.cxx @@ -9,7 +9,6 @@ #include "net/IPv6Address.hxx" #include "net/StaticSocketAddress.hxx" #include "net/AllocatedSocketAddress.hxx" -#include "net/PeerCredentials.hxx" #include "net/SocketUtil.hxx" #include "net/SocketError.hxx" #include "net/UniqueSocketDescriptor.hxx" @@ -102,16 +101,6 @@ private: static constexpr Domain server_socket_domain("server_socket"); -static int -get_remote_uid(SocketDescriptor s) noexcept -{ - const auto cred = s.GetPeerCredentials(); - if (!cred.IsDefined()) - return -1; - - return cred.GetUid(); -} - inline void ServerSocket::OneServerSocket::Accept() noexcept { @@ -131,9 +120,7 @@ ServerSocket::OneServerSocket::Accept() noexcept (const char *)msg); } - 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); } void diff --git a/src/event/ServerSocket.hxx b/src/event/ServerSocket.hxx index 69dc47643..ba2442635 100644 --- a/src/event/ServerSocket.hxx +++ b/src/event/ServerSocket.hxx @@ -134,7 +134,7 @@ public: protected: virtual void OnAccept(UniqueSocketDescriptor fd, - SocketAddress address, int uid) noexcept = 0; + SocketAddress address) noexcept = 0; }; #endif diff --git a/src/output/plugins/httpd/HttpdInternal.hxx b/src/output/plugins/httpd/HttpdInternal.hxx index 4b41f87e0..e7ea1543f 100644 --- a/src/output/plugins/httpd/HttpdInternal.hxx +++ b/src/output/plugins/httpd/HttpdInternal.hxx @@ -251,7 +251,7 @@ private: void OnDeferredBroadcast() noexcept; void OnAccept(UniqueSocketDescriptor fd, - SocketAddress address, int uid) noexcept override; + SocketAddress address) noexcept override; }; extern const class Domain httpd_output_domain; diff --git a/src/output/plugins/httpd/HttpdOutputPlugin.cxx b/src/output/plugins/httpd/HttpdOutputPlugin.cxx index 4409987ab..e084b4d77 100644 --- a/src/output/plugins/httpd/HttpdOutputPlugin.cxx +++ b/src/output/plugins/httpd/HttpdOutputPlugin.cxx @@ -113,7 +113,7 @@ HttpdOutput::OnDeferredBroadcast() noexcept void HttpdOutput::OnAccept(UniqueSocketDescriptor fd, - SocketAddress, [[maybe_unused]] int uid) noexcept + SocketAddress) noexcept { /* the listener socket has become readable - a client has connected */ diff --git a/src/output/plugins/snapcast/Internal.hxx b/src/output/plugins/snapcast/Internal.hxx index 75c6ed156..d51d21264 100644 --- a/src/output/plugins/snapcast/Internal.hxx +++ b/src/output/plugins/snapcast/Internal.hxx @@ -184,7 +184,7 @@ private: /* virtual methods from class ServerSocket */ void OnAccept(UniqueSocketDescriptor fd, - SocketAddress address, int uid) noexcept override; + SocketAddress address) noexcept override; }; #endif diff --git a/src/output/plugins/snapcast/SnapcastOutputPlugin.cxx b/src/output/plugins/snapcast/SnapcastOutputPlugin.cxx index ff0a549fa..add259b0b 100644 --- a/src/output/plugins/snapcast/SnapcastOutputPlugin.cxx +++ b/src/output/plugins/snapcast/SnapcastOutputPlugin.cxx @@ -95,7 +95,7 @@ SnapcastOutput::AddClient(UniqueSocketDescriptor fd) noexcept void SnapcastOutput::OnAccept(UniqueSocketDescriptor fd, - SocketAddress, int) noexcept + SocketAddress) noexcept { /* the listener socket has become readable - a client has connected */