1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-24 00:05:07 +00:00

LibCore: Make TCPServer::listen() report failure instead of asserting

This commit is contained in:
Andreas Kling 2020-09-28 21:59:13 +02:00
parent d79194d87f
commit f88a7cd4e1
3 changed files with 15 additions and 8 deletions

View file

@ -61,14 +61,17 @@ bool TCPServer::listen(const IPv4Address& address, u16 port)
if (m_listening) if (m_listening)
return false; return false;
int rc;
auto socket_address = SocketAddress(address, port); auto socket_address = SocketAddress(address, port);
auto in = socket_address.to_sockaddr_in(); auto in = socket_address.to_sockaddr_in();
rc = ::bind(m_fd, (const sockaddr*)&in, sizeof(in)); if (::bind(m_fd, (const sockaddr*)&in, sizeof(in)) < 0) {
ASSERT(rc == 0); perror("TCPServer::listen: bind");
return false;
}
rc = ::listen(m_fd, 5); if (::listen(m_fd, 5) < 0) {
ASSERT(rc == 0); perror("TCPServer::listen: listen");
return false;
}
m_listening = true; m_listening = true;
m_notifier = Notifier::construct(m_fd, Notifier::Event::Read, this); m_notifier = Notifier::construct(m_fd, Notifier::Event::Read, this);

View file

@ -126,7 +126,7 @@ int main(int argc, char** argv)
} }
if (!server->listen({}, port)) { if (!server->listen({}, port)) {
perror("listen"); warnf("Listening on 0.0.0.0:{} failed", port);
exit(1); exit(1);
} }

View file

@ -73,8 +73,12 @@ int main(int argc, char** argv)
client->start(); client->start();
}; };
server->listen({}, port); if (!server->listen({}, port)) {
printf("Listening on 0.0.0.0:%d\n", port); warnf("Failed to listen on 0.0.0.0:{}", port);
return 1;
}
outf("Listening on 0.0.0.0:{}", port);
if (unveil("/res/icons", "r") < 0) { if (unveil("/res/icons", "r") < 0) {
perror("unveil"); perror("unveil");