LibCore: Add initializer for LocalServer from already connected socket

This commit is contained in:
Andrew Kaster 2024-04-26 15:17:51 -06:00 committed by Tim Flynn
parent 4db0ec86c0
commit 70149079e4
Notes: sideshowbarker 2024-07-17 16:23:55 +09:00
2 changed files with 12 additions and 0 deletions

View file

@ -47,6 +47,17 @@ ErrorOr<void> LocalServer::take_over_from_system_server(ByteString const& socket
return {};
}
ErrorOr<void> LocalServer::take_over_fd(int socket_fd)
{
if (m_listening)
return Error::from_string_literal("Core::LocalServer: Can't perform socket takeover when already listening");
m_fd = socket_fd;
m_listening = true;
setup_notifier();
return {};
}
void LocalServer::setup_notifier()
{
m_notifier = Notifier::construct(m_fd, Notifier::Type::Read, this);

View file

@ -17,6 +17,7 @@ public:
virtual ~LocalServer() override;
ErrorOr<void> take_over_from_system_server(ByteString const& path = ByteString());
ErrorOr<void> take_over_fd(int socket_fd);
bool is_listening() const { return m_listening; }
bool listen(ByteString const& address);