1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 13:55:08 +00:00

IPv4: Implement bind() for TCP and UDP sockets.

We can't accept connections just yet, but this patch makes it possible to
bind() to a given source address/port.
This commit is contained in:
Andreas Kling 2019-05-03 21:51:40 +02:00
parent 6a5d92f0ad
commit abb5c890e0
6 changed files with 34 additions and 2 deletions

View file

@ -203,3 +203,12 @@ bool TCPSocket::protocol_is_disconnected() const
{
return m_state == State::Disconnecting || m_state == State::Disconnected;
}
KResult TCPSocket::protocol_bind()
{
LOCKER(sockets_by_port().lock());
if (sockets_by_port().resource().contains(source_port()))
return KResult(-EADDRINUSE);
sockets_by_port().resource().set(source_port(), this);
return KSuccess;
}