Revert "Client: eliminate SetExpired(), call Close() directly"

This reverts commit 58d7804d66.  It
caused a use-after-free bug when Client::OnSocketError() was called
due to a failed write, e.g. if the output buffer was full.
This commit is contained in:
Max Kellermann
2019-08-22 09:07:41 +02:00
parent e6600b8562
commit f2cdbeace6
7 changed files with 49 additions and 8 deletions

View File

@@ -25,11 +25,11 @@ Client::OnSocketError(std::exception_ptr ep) noexcept
{
FormatError(ep, "error on client %d", num);
Close();
SetExpired();
}
void
Client::OnSocketClosed() noexcept
{
Close();
SetExpired();
}