aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Sadie Powell2025-01-25 22:00:14 +0000
committerGravatar Sadie Powell2025-01-25 22:28:10 +0000
commit1d96b3cc5df0c8d21a2b65e79557e905a6eb8a96 (patch)
tree597a7fd6a14c58c907f0741f952c05cb6959c5b6 /src
parentWhen removing a list mode update the parameter to the actual entry. (diff)
Clean up core_lusers.
Diffstat (limited to 'src')
-rw-r--r--src/coremods/core_lusers.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/coremods/core_lusers.cpp b/src/coremods/core_lusers.cpp
index 7ffc8aac0..867b9e3cb 100644
--- a/src/coremods/core_lusers.cpp
+++ b/src/coremods/core_lusers.cpp
@@ -84,25 +84,23 @@ public:
CmdResult CommandLusers::Handle(User* user, const Params& parameters)
{
- size_t n_users = ServerInstance->Users.GlobalUserCount();
ProtocolInterface::ServerList serverlist;
ServerInstance->PI->GetServerList(serverlist);
- size_t n_serv = serverlist.size();
- size_t n_local_servs = 0;
+
+ // If spanningtree is not loaded GetServerList does nothing.
+ size_t global_servers = std::max<size_t>(serverlist.size(), 1);
+ size_t local_servers = 0;
for (const auto& server : serverlist)
{
if (server.parentname == ServerInstance->Config->ServerName)
- n_local_servs++;
+ local_servers++;
}
- // fix for default GetServerList not returning us
- if (!n_serv)
- n_serv = 1;
counters.UpdateMaxUsers();
user->WriteNumeric(RPL_LUSERCLIENT, INSP_FORMAT("There are {} users and {} invisible on {} servers",
- n_users - counters.invisible, counters.invisible, n_serv));
+ ServerInstance->Users.GlobalUserCount() - counters.invisible, counters.invisible, global_servers));
size_t opercount = ServerInstance->Users.all_opers.size();
if (opercount)
@@ -112,9 +110,9 @@ CmdResult CommandLusers::Handle(User* user, const Params& parameters)
user->WriteNumeric(RPL_LUSERUNKNOWN, ServerInstance->Users.UnknownUserCount(), "unknown connections");
user->WriteNumeric(RPL_LUSERCHANNELS, ServerInstance->Channels.GetChans().size(), "channels formed");
- user->WriteNumeric(RPL_LUSERME, INSP_FORMAT("I have {} clients and {} servers", ServerInstance->Users.LocalUserCount(), n_local_servs));
+ user->WriteNumeric(RPL_LUSERME, INSP_FORMAT("I have {} clients and {} servers", ServerInstance->Users.LocalUserCount(), local_servers));
user->WriteNumeric(RPL_LOCALUSERS, INSP_FORMAT("Current local users: {} Max: {}", ServerInstance->Users.LocalUserCount(), counters.max_local));
- user->WriteNumeric(RPL_GLOBALUSERS, INSP_FORMAT("Current global users: {} Max: {}", n_users, counters.max_global));
+ user->WriteNumeric(RPL_GLOBALUSERS, INSP_FORMAT("Current global users: {} Max: {}", ServerInstance->Users.GlobalUserCount(), counters.max_global));
return CmdResult::SUCCESS;
}