mirror of
https://github.com/RGBCube/serenity
synced 2025-09-13 10:37:59 +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:
parent
5b69413c4b
commit
4dd2ec68fc
11 changed files with 55 additions and 36 deletions
|
@ -37,10 +37,9 @@ ErrorOr<int> service_main(int ipc_socket, int fd_passing_socket)
|
|||
|
||||
Core::EventLoop event_loop;
|
||||
|
||||
// FIXME: Don't leak these :V
|
||||
[[maybe_unused]] auto* gemini = new RequestServer::GeminiProtocol;
|
||||
[[maybe_unused]] auto* http = new RequestServer::HttpProtocol;
|
||||
[[maybe_unused]] auto* https = new RequestServer::HttpsProtocol;
|
||||
RequestServer::GeminiProtocol::install();
|
||||
RequestServer::HttpProtocol::install();
|
||||
RequestServer::HttpsProtocol::install();
|
||||
|
||||
auto socket = TRY(Core::LocalSocket::adopt_fd(ipc_socket));
|
||||
auto client = TRY(RequestServer::ConnectionFromClient::try_create(move(socket)));
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue