From 89d9a1afc05c57a8c2e11ab92d2ab2e9f8dda357 Mon Sep 17 00:00:00 2001 From: sin-ack Date: Sat, 15 Jan 2022 11:56:48 +0000 Subject: [PATCH] LibCore+LibIPC: Move SystemServerTakeover.{h,cpp} to LibCore This functionality is required by Core::LocalServer and LibIPC depends on LibCore. take_over_accepted_socket_from_system_server has also been renamed to take_over_socket_from_system_server as the socket need not be accepted before taking it over. :^) --- Userland/Libraries/LibCore/CMakeLists.txt | 1 + .../{LibIPC => LibCore}/SystemServerTakeover.cpp | 8 ++++++-- Userland/Libraries/LibCore/SystemServerTakeover.h | 15 +++++++++++++++ Userland/Libraries/LibIPC/CMakeLists.txt | 1 - Userland/Libraries/LibIPC/SingleServer.h | 4 ++-- Userland/Libraries/LibIPC/SystemServerTakeover.h | 12 ------------ 6 files changed, 24 insertions(+), 17 deletions(-) rename Userland/Libraries/{LibIPC => LibCore}/SystemServerTakeover.cpp (91%) create mode 100644 Userland/Libraries/LibCore/SystemServerTakeover.h delete mode 100644 Userland/Libraries/LibIPC/SystemServerTakeover.h diff --git a/Userland/Libraries/LibCore/CMakeLists.txt b/Userland/Libraries/LibCore/CMakeLists.txt index c3eecb178d..86fe0d9235 100644 --- a/Userland/Libraries/LibCore/CMakeLists.txt +++ b/Userland/Libraries/LibCore/CMakeLists.txt @@ -32,6 +32,7 @@ set(SOURCES Stream.cpp StandardPaths.cpp System.cpp + SystemServerTakeover.cpp TCPServer.cpp TCPSocket.cpp TempFile.cpp diff --git a/Userland/Libraries/LibIPC/SystemServerTakeover.cpp b/Userland/Libraries/LibCore/SystemServerTakeover.cpp similarity index 91% rename from Userland/Libraries/LibIPC/SystemServerTakeover.cpp rename to Userland/Libraries/LibCore/SystemServerTakeover.cpp index 0948c42ca9..3f134663ca 100644 --- a/Userland/Libraries/LibIPC/SystemServerTakeover.cpp +++ b/Userland/Libraries/LibCore/SystemServerTakeover.cpp @@ -7,10 +7,12 @@ #include "SystemServerTakeover.h" #include +namespace Core { + HashMap s_overtaken_sockets {}; bool s_overtaken_sockets_parsed { false }; -void parse_sockets_from_system_server() +static void parse_sockets_from_system_server() { VERIFY(!s_overtaken_sockets_parsed); @@ -32,7 +34,7 @@ void parse_sockets_from_system_server() unsetenv(socket_takeover); } -ErrorOr> take_over_accepted_socket_from_system_server(String const& socket_path) +ErrorOr> take_over_socket_from_system_server(String const& socket_path) { if (!s_overtaken_sockets_parsed) parse_sockets_from_system_server(); @@ -63,3 +65,5 @@ ErrorOr> take_over_accepted_socket_from return socket; } + +} diff --git a/Userland/Libraries/LibCore/SystemServerTakeover.h b/Userland/Libraries/LibCore/SystemServerTakeover.h new file mode 100644 index 0000000000..64bb6d4f32 --- /dev/null +++ b/Userland/Libraries/LibCore/SystemServerTakeover.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2022, sin-ack + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace Core { + +ErrorOr> take_over_socket_from_system_server(String const& socket_path = {}); + +} diff --git a/Userland/Libraries/LibIPC/CMakeLists.txt b/Userland/Libraries/LibIPC/CMakeLists.txt index 1fbb221b3a..9b41b56af7 100644 --- a/Userland/Libraries/LibIPC/CMakeLists.txt +++ b/Userland/Libraries/LibIPC/CMakeLists.txt @@ -4,7 +4,6 @@ set(SOURCES Encoder.cpp Message.cpp Stub.cpp - SystemServerTakeover.cpp ) serenity_lib(LibIPC ipc) diff --git a/Userland/Libraries/LibIPC/SingleServer.h b/Userland/Libraries/LibIPC/SingleServer.h index de80b4db15..3a7da1a8fc 100644 --- a/Userland/Libraries/LibIPC/SingleServer.h +++ b/Userland/Libraries/LibIPC/SingleServer.h @@ -7,15 +7,15 @@ #pragma once #include +#include #include -#include namespace IPC { template ErrorOr> take_over_accepted_client_from_system_server() { - auto socket = TRY(take_over_accepted_socket_from_system_server()); + auto socket = TRY(Core::take_over_socket_from_system_server()); return IPC::new_client_connection(move(socket)); } diff --git a/Userland/Libraries/LibIPC/SystemServerTakeover.h b/Userland/Libraries/LibIPC/SystemServerTakeover.h deleted file mode 100644 index 5dbda758b1..0000000000 --- a/Userland/Libraries/LibIPC/SystemServerTakeover.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2022, sin-ack - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#pragma once - -#include - -void parse_sockets_from_system_server(); -ErrorOr> take_over_accepted_socket_from_system_server(String const& socket_path = {});