1
0
Fork 0

Codechange: use Pool's counter instead of maintaining our own

pull/13427/head
Rubidium 2025-02-01 08:56:57 +01:00 committed by rubidium42
parent 23dcb4f4a7
commit f3e32b2f6a
1 changed files with 1 additions and 11 deletions

View File

@ -31,9 +31,6 @@
/** Redirection of the (remote) console to the admin. */ /** Redirection of the (remote) console to the admin. */
AdminIndex _redirect_console_to_admin = INVALID_ADMIN_ID; AdminIndex _redirect_console_to_admin = INVALID_ADMIN_ID;
/** The amount of admins connected. */
uint8_t _network_admins_connected = 0;
/** The pool with sockets/clients. */ /** The pool with sockets/clients. */
NetworkAdminSocketPool _networkadminsocket_pool("NetworkAdminSocket"); NetworkAdminSocketPool _networkadminsocket_pool("NetworkAdminSocket");
INSTANTIATE_POOL_METHODS(NetworkAdminSocket) INSTANTIATE_POOL_METHODS(NetworkAdminSocket)
@ -67,7 +64,6 @@ static_assert(lengthof(_admin_update_type_frequencies) == ADMIN_UPDATE_END);
*/ */
ServerNetworkAdminSocketHandler::ServerNetworkAdminSocketHandler(SOCKET s) : NetworkAdminSocketHandler(s) ServerNetworkAdminSocketHandler::ServerNetworkAdminSocketHandler(SOCKET s) : NetworkAdminSocketHandler(s)
{ {
_network_admins_connected++;
this->status = ADMIN_STATUS_INACTIVE; this->status = ADMIN_STATUS_INACTIVE;
this->connect_time = std::chrono::steady_clock::now(); this->connect_time = std::chrono::steady_clock::now();
} }
@ -77,7 +73,6 @@ ServerNetworkAdminSocketHandler::ServerNetworkAdminSocketHandler(SOCKET s) : Net
*/ */
ServerNetworkAdminSocketHandler::~ServerNetworkAdminSocketHandler() ServerNetworkAdminSocketHandler::~ServerNetworkAdminSocketHandler()
{ {
_network_admins_connected--;
Debug(net, 3, "[admin] '{}' ({}) has disconnected", this->admin_name, this->admin_version); Debug(net, 3, "[admin] '{}' ({}) has disconnected", this->admin_name, this->admin_version);
if (_redirect_console_to_admin == this->index) _redirect_console_to_admin = INVALID_ADMIN_ID; if (_redirect_console_to_admin == this->index) _redirect_console_to_admin = INVALID_ADMIN_ID;
@ -93,12 +88,7 @@ ServerNetworkAdminSocketHandler::~ServerNetworkAdminSocketHandler()
*/ */
/* static */ bool ServerNetworkAdminSocketHandler::AllowConnection() /* static */ bool ServerNetworkAdminSocketHandler::AllowConnection()
{ {
bool accept = _settings_client.network.AdminAuthenticationConfigured() && _network_admins_connected < MAX_ADMINS; return _settings_client.network.AdminAuthenticationConfigured() && ServerNetworkAdminSocketHandler::CanAllocateItem();
/* We can't go over the MAX_ADMINS limit here. However, if we accept
* the connection, there has to be space in the pool. */
static_assert(NetworkAdminSocketPool::MAX_SIZE == MAX_ADMINS);
assert(!accept || ServerNetworkAdminSocketHandler::CanAllocateItem());
return accept;
} }
/** Send the packets for the server sockets. */ /** Send the packets for the server sockets. */