mirror of
https://github.com/RGBCube/serenity
synced 2025-05-24 06:05:08 +00:00
LibCore: Make TCPServer::listen() report failure instead of asserting
This commit is contained in:
parent
d79194d87f
commit
f88a7cd4e1
3 changed files with 15 additions and 8 deletions
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue