From a46b8b8edea0caf94350895acd02f0c90a1027de Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sat, 29 Oct 2022 13:01:42 +0100 Subject: Allow UserManager::Find{Nick,UUID,} to ignore unregistered users. --- src/usermanager.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/usermanager.cpp') 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; } -- cgit v1.3.1-10-gc9f91