summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libsock/server/clients.hpp3
-rw-r--r--src/server/clients.cpp4
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)