1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-09 03:10:46 +00:00

Kernel: Block writes while we're establishing the TCP connection

Previously we would not block the caller until the connection was
established and would instead return EPIPE for the first send() call
which then likely caused the caller to abandon the socket.

This was broken by 0625342.
This commit is contained in:
Gunnar Beutner 2021-06-11 08:43:17 +02:00 committed by Andreas Kling
parent 87b1da4441
commit c3d702431a

View File

@ -584,6 +584,9 @@ bool TCPSocket::can_write(const FileDescription& file_description, size_t size)
if (!IPv4Socket::can_write(file_description, size))
return false;
if (m_state == State::SynSent || m_state == State::SynReceived)
return false;
if (!file_description.is_blocking())
return true;