mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:17:36 +00:00
Kernel: Actually send things between the socket endpoints.
This commit is contained in:
parent
b20a7aca61
commit
eb1c721ef3
5 changed files with 53 additions and 3 deletions
|
@ -94,3 +94,35 @@ RetainPtr<Socket> LocalSocket::connect(const sockaddr* address, socklen_t addres
|
|||
m_connected = true;
|
||||
return m_peer;
|
||||
}
|
||||
|
||||
bool LocalSocket::can_read(SocketRole role) const
|
||||
{
|
||||
if (role == SocketRole::Accepted)
|
||||
return !m_for_server.is_empty();
|
||||
else
|
||||
return !m_for_client.is_empty();
|
||||
}
|
||||
|
||||
ssize_t LocalSocket::read(SocketRole role, byte* buffer, size_t size)
|
||||
{
|
||||
if (role == SocketRole::Accepted)
|
||||
return m_for_server.read(buffer, size);
|
||||
else
|
||||
return m_for_client.read(buffer, size);
|
||||
}
|
||||
|
||||
ssize_t LocalSocket::write(SocketRole role, const byte* data, size_t size)
|
||||
{
|
||||
if (role == SocketRole::Accepted)
|
||||
return m_for_client.write(data, size);
|
||||
else
|
||||
return m_for_server.write(data, size);
|
||||
}
|
||||
|
||||
bool LocalSocket::can_write(SocketRole role) const
|
||||
{
|
||||
if (role == SocketRole::Accepted)
|
||||
return !m_for_client.is_empty();
|
||||
else
|
||||
return !m_for_server.is_empty();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue