aboutsummaryrefslogtreecommitdiff
path: root/src/usermanager.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2022-10-29 13:01:42 +0100
committerGravatar Sadie Powell2022-10-29 13:01:42 +0100
commita46b8b8edea0caf94350895acd02f0c90a1027de (patch)
tree378d05f11c9c3ea1e814e3b1d88f8a620bea4a9d /src/usermanager.cpp
parentMore const correctness. (diff)
Allow UserManager::Find{Nick,UUID,} to ignore unregistered users.
Diffstat (limited to 'src/usermanager.cpp')
-rw-r--r--src/usermanager.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/usermanager.cpp b/src/usermanager.cpp
index c49c565d6..9755da400 100644
--- a/src/usermanager.cpp
+++ b/src/usermanager.cpp
@@ -400,18 +400,18 @@ uint64_t UserManager::NextAlreadySentId()
return already_sent_id;
}
-User* UserManager::Find(const std::string& nickuuid)
+User* UserManager::Find(const std::string& nickuuid, bool fullyconnected)
{
if (nickuuid.empty())
return nullptr;
if (isdigit(nickuuid[0]))
- return FindUUID(nickuuid);
+ return FindUUID(nickuuid, fullyconnected);
- return FindNick(nickuuid);
+ return FindNick(nickuuid, fullyconnected);
}
-User* UserManager::FindNick(const std::string& nick)
+User* UserManager::FindNick(const std::string& nick, bool fullyconnected)
{
if (nick.empty())
return nullptr;
@@ -420,10 +420,14 @@ User* UserManager::FindNick(const std::string& nick)
if (uiter == this->clientlist.end())
return nullptr;
- return uiter->second;
+ User* user = uiter->second;
+ if (fullyconnected && !user->IsFullyConnected())
+ return nullptr;
+
+ return user;
}
-User* UserManager::FindUUID(const std::string& uuid)
+User* UserManager::FindUUID(const std::string& uuid, bool fullyconnected)
{
if (uuid.empty())
return nullptr;
@@ -432,5 +436,9 @@ User* UserManager::FindUUID(const std::string& uuid)
if (uiter == this->uuidlist.end())
return nullptr;
- return uiter->second;
+ User* user = uiter->second;
+ if (fullyconnected && !user->IsFullyConnected())
+ return nullptr;
+
+ return user;
}