diff options
| -rw-r--r-- | include/libsock/server/clients.hpp | 3 | ||||
| -rw-r--r-- | src/server/clients.cpp | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/include/libsock/server/clients.hpp b/include/libsock/server/clients.hpp index 8eccbb7..a80fb4a 100644 --- a/include/libsock/server/clients.hpp +++ b/include/libsock/server/clients.hpp @@ -1,6 +1,7 @@ #pragma once #include "../types.hpp" +#include "server.hpp" #include <any> #include <functional> #include <memory> @@ -24,7 +25,7 @@ class Clients : public std::enable_shared_from_this<Clients> { static SP<Clients> create(); ~Clients(); - WP<Client> newClient(std::optional<std::function<std::any(WP<Client>)>> cb = std::nullopt); + WP<Client> newClient(SP<Server> server = pServer, std::optional<std::function<std::any(WP<Client>)>> cb = std::nullopt); void broadcast(const std::string &msg, std::optional<WP<Client>> self = std::nullopt); // second param only specified when we // want to exclude the sender diff --git a/src/server/clients.cpp b/src/server/clients.cpp index 201ccc6..ac3546e 100644 --- a/src/server/clients.cpp +++ b/src/server/clients.cpp @@ -58,8 +58,8 @@ Clients::~Clients() { } } -WP<Client> Clients::newClient(std::optional<std::function<std::any(WP<Client>)>> cb) { - SP client = SP<Client>(new Client(pServer, shared_from_this())); +WP<Client> Clients::newClient(SP<Server> server, std::optional<std::function<std::any(WP<Client>)>> cb) { + SP client = SP<Client>(new Client(server, shared_from_this())); auto &instance = m_vClients.emplace_back(std::jthread([client]() { client->run(); }), client); instance.second->self = std::weak_ptr<Client>(instance.second); if (cb) |
