From 77345ad0693698fa1857fc5eb7f09e06504c9432 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Wed, 18 Jun 2025 13:44:49 +0800 Subject: API: disallow creation of client without clientManager --- include/libsock/server/client.hpp | 3 ++- src/server/clients.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/include/libsock/server/client.hpp b/include/libsock/server/client.hpp index 3ed4516..babcffe 100644 --- a/include/libsock/server/client.hpp +++ b/include/libsock/server/client.hpp @@ -36,7 +36,6 @@ inline SP pClients; class Client { public: - Client(SP server = SP(pServer), SP clients = pClients, bool track = false, bool oneShot = true); ~Client(); const std::string &getIp() const; @@ -53,6 +52,8 @@ class Client { bool isValid(); private: + Client(SP server = SP(pServer), SP clients = pClients, bool track = false, bool oneShot = true); + WP self; SP m_sockfd; sockaddr_in m_addr; diff --git a/src/server/clients.cpp b/src/server/clients.cpp index 4d6308e..01e6d35 100644 --- a/src/server/clients.cpp +++ b/src/server/clients.cpp @@ -45,7 +45,7 @@ Clients::~Clients() { } WP Clients::newClient(std::optional)>> cb) { - SP client = std::make_shared(); + SP client = SP(new Client()); auto &instance = m_vClients.emplace_back(std::jthread([client]() { client->run(); }), client); instance.second->self = std::weak_ptr(instance.second); if (cb) -- cgit v1.2.3