diff --git a/src/network/TCPListener.cpp b/src/network/TCPListener.cpp index 098bb15..1cc98f2 100644 --- a/src/network/TCPListener.cpp +++ b/src/network/TCPListener.cpp @@ -188,10 +188,10 @@ namespace Feather::Network if (!socket->MarkNonBlocking()) 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(self); - listener->m_callbacks->OnClientConnect(std::make_unique(listener, socket)); + listener->OnClientConnect(std::make_unique(listener, socket)); }; 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) { m_callbacks->OnClientDisconnect(client); diff --git a/src/network/TCPListener.h b/src/network/TCPListener.h index 570175c..ee5d596 100644 --- a/src/network/TCPListener.h +++ b/src/network/TCPListener.h @@ -16,6 +16,7 @@ namespace Feather::Network protected: friend class TCPClient; + void OnClientConnect(TCPClientHandle&& client); void OnClientDisconnected(const TCPClient* client); private: