1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 10:55:06 +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

@ -104,3 +104,12 @@ int UDPSocket::protocol_allocate_source_port()
}
return -EADDRINUSE;
}
KResult UDPSocket::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;
}