/* * Copyright (c) 2021, Itamar S. * * SPDX-License-Identifier: BSD-2-Clause */ #include "ClientConnection.h" #include "Tests.h" #include #include #include #include #include #include #include #include static ErrorOr mode_server(); ErrorOr serenity_main(Main::Arguments arguments) { bool tests = false; Core::ArgsParser parser; parser.add_option(tests, "Run tests", "tests", 't'); parser.parse(arguments); if (tests) return run_tests(); return mode_server(); } ErrorOr mode_server() { Core::EventLoop event_loop; TRY(Core::System::pledge("stdio unix recvfd rpath")); auto socket = TRY(Core::LocalSocket::take_over_accepted_socket_from_system_server()); (void)IPC::new_client_connection(move(socket), 1); TRY(Core::System::pledge("stdio recvfd rpath")); TRY(Core::System::unveil("/usr/include", "r")); // unveil will be sealed later, when we know the project's root path. return event_loop.exec(); }