1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 07:07:34 +00:00

RequestServer: Transfer ownership of Protocols to all_protocols map

It's no change in application behavior to have these objects owned by
the function-scope static map in Protocol.cpp, while allowing us to
remove some ugly FIXMEs from time immemorial.
This commit is contained in:
Andrew Kaster 2024-03-05 15:15:41 -07:00 committed by Sam Atkins
parent 5b69413c4b
commit 4dd2ec68fc
11 changed files with 55 additions and 36 deletions

View file

@ -51,17 +51,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
Core::EventLoop event_loop;
[[maybe_unused]] auto gemini = make<RequestServer::GeminiProtocol>();
[[maybe_unused]] auto http = make<RequestServer::HttpProtocol>();
[[maybe_unused]] auto https = make<RequestServer::HttpsProtocol>();
RequestServer::GeminiProtocol::install();
RequestServer::HttpProtocol::install();
RequestServer::HttpsProtocol::install();
auto client = TRY(IPC::take_over_accepted_client_from_system_server<RequestServer::ConnectionFromClient>());
client->set_fd_passing_socket(TRY(Core::LocalSocket::adopt_fd(fd_passing_socket)));
auto result = event_loop.exec();
// FIXME: We exit instead of returning, so that protocol destructors don't get called.
// The Protocol base class should probably do proper de-registration instead of
// just VERIFY_NOT_REACHED().
exit(result);
return event_loop.exec();
}