AK+ProtocolServer: Properly close download stream fd's

This makes the issue of running out of openable pipes in the
ProtocolServer process much less likely (but still possible).
This commit is contained in:
AnotherTest 2020-12-30 21:05:54 +03:30 committed by Andreas Kling
parent bdd4b99d72
commit 6422a04cda
2 changed files with 5 additions and 2 deletions

View file

@ -54,8 +54,9 @@ public:
~InputFileStream()
{
if (m_file) {
fflush(m_file);
if (m_owned)
fflush(m_file);
fclose(m_file);
}
}

View file

@ -72,7 +72,9 @@ OwnPtr<Messages::ProtocolServer::StartDownloadResponse> ClientConnection::handle
auto id = download->id();
auto fd = download->download_fd();
m_downloads.set(id, move(download));
return make<Messages::ProtocolServer::StartDownloadResponse>(id, fd);
auto response = make<Messages::ProtocolServer::StartDownloadResponse>(id, fd);
response->on_destruction = [fd] { close(fd); };
return response;
}
OwnPtr<Messages::ProtocolServer::StopDownloadResponse> ClientConnection::handle(const Messages::ProtocolServer::StopDownload& message)