summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2019-12-28 17:08:06 +0100
committerPeter Powell <petpow@saberuk.com>2019-12-28 17:33:49 +0100
commit4cc992f6c20354eef88b7652f268591daccb1b20 (patch)
tree102fdf339c718a964634fd6ef9484bcdece564b4 /src
parent52df21f646a803b85417a4b699b1be48c25fa566 (diff)
Ignore clients on ulined servers when reporting stats in LUSERS.
Diffstat (limited to 'src')
-rw-r--r--src/usermanager.cpp1
-rw-r--r--src/users.cpp6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/usermanager.cpp b/src/usermanager.cpp
index bcb831858..92f94f960 100644
--- a/src/usermanager.cpp
+++ b/src/usermanager.cpp
@@ -112,6 +112,7 @@ namespace
UserManager::UserManager()
: already_sent_id(0)
, unregistered_count(0)
+ , uline_count(0)
{
}
diff --git a/src/users.cpp b/src/users.cpp
index 6c58f0617..82f2545f4 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -78,6 +78,9 @@ User::User(const std::string& uid, Server* srv, UserType type)
ServerInstance->Logs->Log("USERS", LOG_DEBUG, "New UUID for user: %s", uuid.c_str());
+ if (srv->IsULine())
+ ServerInstance->Users->uline_count++;
+
// Do not insert FakeUsers into the uuidlist so FindUUID() won't return them which is the desired behavior
if (type != USERTYPE_SERVER)
{
@@ -339,6 +342,9 @@ CullResult User::cull()
if (client_sa.family() != AF_UNSPEC)
ServerInstance->Users->RemoveCloneCounts(this);
+ if (server->IsULine() && ServerInstance->Users->uline_count)
+ ServerInstance->Users->uline_count--;
+
return Extensible::cull();
}