Misc socket cleaning
This commit is contained in:
parent
5c0333a192
commit
50da8c2508
|
@ -188,10 +188,10 @@ namespace Feather::Network
|
||||||
if (!socket->MarkNonBlocking())
|
if (!socket->MarkNonBlocking())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto ListenerCallback = [](evconnlistener* evListener, evutil_socket_t socket, sockaddr* addr, int len, void* self)
|
auto ListenerCallback = [](evconnlistener* evListener, SocketHandle socket, sockaddr* addr, int len, void* self)
|
||||||
{
|
{
|
||||||
TCPListener* listener = static_cast<TCPListener*>(self);
|
TCPListener* listener = static_cast<TCPListener*>(self);
|
||||||
listener->m_callbacks->OnClientConnect(std::make_unique<TCPClient>(listener, socket));
|
listener->OnClientConnect(std::make_unique<TCPClient>(listener, socket));
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!socket->Listen(ListenerCallback, this))
|
if (!socket->Listen(ListenerCallback, this))
|
||||||
|
@ -204,6 +204,11 @@ namespace Feather::Network
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCPListener::OnClientConnect(TCPClientHandle&& client)
|
||||||
|
{
|
||||||
|
m_callbacks->OnClientConnect(std::move(client));
|
||||||
|
}
|
||||||
|
|
||||||
void TCPListener::OnClientDisconnected(const TCPClient* client)
|
void TCPListener::OnClientDisconnected(const TCPClient* client)
|
||||||
{
|
{
|
||||||
m_callbacks->OnClientDisconnect(client);
|
m_callbacks->OnClientDisconnect(client);
|
||||||
|
|
|
@ -16,6 +16,7 @@ namespace Feather::Network
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
friend class TCPClient;
|
friend class TCPClient;
|
||||||
|
void OnClientConnect(TCPClientHandle&& client);
|
||||||
void OnClientDisconnected(const TCPClient* client);
|
void OnClientDisconnected(const TCPClient* client);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue