summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libsock/server/client.hpp3
-rw-r--r--src/server/clients.cpp2
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<Clients> pClients;
class Client {
public:
- Client(SP<Server> server = SP<Server>(pServer), SP<Clients> 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> server = SP<Server>(pServer), SP<Clients> clients = pClients, bool track = false, bool oneShot = true);
+
WP<Client> self;
SP<LibSock::CFileDescriptor> 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<Client> Clients::newClient(std::optional<std::function<std::any(WP<Client>)>> cb) {
- SP client = std::make_shared<Client>();
+ SP client = SP<Client>(new Client());
auto &instance = m_vClients.emplace_back(std::jthread([client]() { client->run(); }), client);
instance.second->self = std::weak_ptr<Client>(instance.second);
if (cb)