mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 02:07:34 +00:00
LibIPC: Fix server crashes on client disconnects
The server should always survive client communication errors.
This commit is contained in:
parent
4aa3d08e21
commit
8449f0a15b
1 changed files with 7 additions and 2 deletions
|
@ -121,7 +121,8 @@ public:
|
|||
return;
|
||||
default:
|
||||
perror("Connection::post_message write");
|
||||
ASSERT_NOT_REACHED();
|
||||
shutdown();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -130,6 +131,9 @@ public:
|
|||
|
||||
void drain_messages_from_client()
|
||||
{
|
||||
if (!m_socket->is_open())
|
||||
return;
|
||||
|
||||
Vector<u8> bytes;
|
||||
for (;;) {
|
||||
u8 buffer[4096];
|
||||
|
@ -143,7 +147,8 @@ public:
|
|||
}
|
||||
if (nread < 0) {
|
||||
perror("recv");
|
||||
ASSERT_NOT_REACHED();
|
||||
shutdown();
|
||||
return;
|
||||
}
|
||||
bytes.append(buffer, nread);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue