mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 19:17:41 +00:00
LibCore: Add local_{address,port} functions to CTCPServer
This commit is contained in:
parent
b61414fb96
commit
fbe8569412
2 changed files with 29 additions and 0 deletions
|
@ -53,3 +53,29 @@ RefPtr<CTCPSocket> CTCPServer::accept()
|
||||||
|
|
||||||
return CTCPSocket::construct(accepted_fd);
|
return CTCPSocket::construct(accepted_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IPv4Address CTCPServer::local_address()
|
||||||
|
{
|
||||||
|
if (m_fd == -1)
|
||||||
|
return {};
|
||||||
|
|
||||||
|
sockaddr_in address;
|
||||||
|
socklen_t len = sizeof(address);
|
||||||
|
if (getsockname(m_fd, (sockaddr*)&address, &len) != 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return IPv4Address(address.sin_addr.s_addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 CTCPServer::local_port()
|
||||||
|
{
|
||||||
|
if (m_fd == -1)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
sockaddr_in address;
|
||||||
|
socklen_t len = sizeof(address);
|
||||||
|
if (getsockname(m_fd, (sockaddr*)&address, &len) != 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return ntohs(address.sin_port);
|
||||||
|
}
|
||||||
|
|
|
@ -16,6 +16,9 @@ public:
|
||||||
|
|
||||||
RefPtr<CTCPSocket> accept();
|
RefPtr<CTCPSocket> accept();
|
||||||
|
|
||||||
|
IPv4Address local_address();
|
||||||
|
u16 local_port();
|
||||||
|
|
||||||
Function<void()> on_ready_to_accept;
|
Function<void()> on_ready_to_accept;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue