aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/inspircd.h6
-rw-r--r--include/usermanager.h6
-rw-r--r--src/configreader.cpp4
-rw-r--r--src/coremods/core_hostname_lookup.cpp4
-rw-r--r--src/coremods/core_reloadmodule.cpp6
-rw-r--r--src/coremods/core_whois.cpp2
-rw-r--r--src/helperfuncs.cpp9
-rw-r--r--src/modules/m_cap.cpp2
-rw-r--r--src/modules/m_dnsbl.cpp4
-rw-r--r--src/modules/m_ldapauth.cpp8
-rw-r--r--src/modules/m_ldapoper.cpp4
-rw-r--r--src/modules/m_sasl.cpp2
-rw-r--r--src/modules/m_spanningtree/compat.cpp4
-rw-r--r--src/modules/m_spanningtree/fjoin.cpp2
-rw-r--r--src/modules/m_spanningtree/idle.cpp2
-rw-r--r--src/modules/m_spanningtree/metadata.cpp2
-rw-r--r--src/modules/m_spanningtree/num.cpp2
-rw-r--r--src/modules/m_spanningtree/save.cpp2
-rw-r--r--src/modules/m_spanningtree/svsjoin.cpp2
-rw-r--r--src/modules/m_spanningtree/svspart.cpp2
-rw-r--r--src/modules/m_spanningtree/treesocket2.cpp2
-rw-r--r--src/modules/m_sqlauth.cpp2
-rw-r--r--src/server.cpp2
-rw-r--r--src/usermanager.cpp12
24 files changed, 48 insertions, 45 deletions
diff --git a/include/inspircd.h b/include/inspircd.h
index 6bd14c0e9..4d1a768a7 100644
--- a/include/inspircd.h
+++ b/include/inspircd.h
@@ -214,12 +214,6 @@ class CoreExport InspIRCd
*/
FakeUser* FakeClient = nullptr;
- /** Find a user in the UUID hash
- * @param uid The UUID to find
- * @return A pointer to the user, or NULL if the user does not exist
- */
- User* FindUUID(const std::string &uid);
-
/** Time this ircd was booted
*/
time_t startup_time;
diff --git a/include/usermanager.h b/include/usermanager.h
index bc1c6fe3b..3c840d2b2 100644
--- a/include/usermanager.h
+++ b/include/usermanager.h
@@ -191,4 +191,10 @@ class CoreExport UserManager
* @return Next already_sent id
*/
already_sent_t NextAlreadySentId();
+
+ /** Find a user by their UUID.
+ * @param uuid The UUID of the user to find.
+ * @return If the user was found then a pointer to a User object; otherwise, nullptr.
+ */
+ User* FindUUID(const std::string& uuid);
};
diff --git a/src/configreader.cpp b/src/configreader.cpp
index cbb78d3d6..7d4e30672 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -510,7 +510,7 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid)
}
}
- User* user = useruid.empty() ? NULL : ServerInstance->FindUUID(useruid);
+ User* user = ServerInstance->Users.FindUUID(useruid);
if (!valid)
{
@@ -695,7 +695,7 @@ void ConfigReaderThread::OnStop()
ServerInstance->XLines->CheckELines();
ServerInstance->XLines->ApplyLines();
- User* user = ServerInstance->FindUUID(UUID);
+ User* user = ServerInstance->Users.FindUUID(UUID);
ConfigStatus status(user);
const ModuleManager::ModuleMap& mods = ServerInstance->Modules.GetModules();
for (ModuleManager::ModuleMap::const_iterator i = mods.begin(); i != mods.end(); ++i)
diff --git a/src/coremods/core_hostname_lookup.cpp b/src/coremods/core_hostname_lookup.cpp
index db3af76b5..f0d54e975 100644
--- a/src/coremods/core_hostname_lookup.cpp
+++ b/src/coremods/core_hostname_lookup.cpp
@@ -66,7 +66,7 @@ class UserResolver : public DNS::Request
*/
void OnLookupComplete(const DNS::Query* r) override
{
- LocalUser* bound_user = IS_LOCAL(ServerInstance->FindUUID(uuid));
+ LocalUser* bound_user = IS_LOCAL(ServerInstance->Users.FindUUID(uuid));
if (!bound_user)
{
ServerInstance->Logs.Log(MODNAME, LOG_DEBUG, "Resolution finished for user '%s' who is gone", uuid.c_str());
@@ -151,7 +151,7 @@ class UserResolver : public DNS::Request
*/
void OnError(const DNS::Query* query) override
{
- LocalUser* bound_user = IS_LOCAL(ServerInstance->FindUUID(uuid));
+ LocalUser* bound_user = IS_LOCAL(ServerInstance->Users.FindUUID(uuid));
if (bound_user)
HandleError(bound_user, "Could not resolve your hostname: " + this->manager->GetErrorStr(query->error));
}
diff --git a/src/coremods/core_reloadmodule.cpp b/src/coremods/core_reloadmodule.cpp
index 4d2b7eb12..138dc4cfe 100644
--- a/src/coremods/core_reloadmodule.cpp
+++ b/src/coremods/core_reloadmodule.cpp
@@ -471,7 +471,7 @@ void DataKeeper::RestoreMemberData(Channel* chan, const std::vector<ChanData::Me
for (std::vector<ChanData::MemberData>::const_iterator i = memberdatalist.begin(); i != memberdatalist.end(); ++i)
{
const ChanData::MemberData& md = *i;
- User* const user = ServerInstance->FindUUID(md.owner);
+ User* const user = ServerInstance->Users.FindUUID(md.owner);
if (!user)
{
ServerInstance->Logs.Log(MODNAME, LOG_DEBUG, "User %s is gone (while processing %s)", md.owner.c_str(), chan->name.c_str());
@@ -645,7 +645,7 @@ void DataKeeper::DoRestoreUsers()
for (std::vector<UserData>::const_iterator i = userdatalist.begin(); i != userdatalist.end(); ++i)
{
const UserData& userdata = *i;
- User* const user = ServerInstance->FindUUID(userdata.owner);
+ User* const user = ServerInstance->Users.FindUUID(userdata.owner);
if (!user)
{
ServerInstance->Logs.Log(MODNAME, LOG_DEBUG, "User %s is gone", userdata.owner.c_str());
@@ -736,7 +736,7 @@ class ReloadAction : public ActionBase
datakeeper.Fail();
ServerInstance->SNO.WriteGlobalSno('a', "RELOAD MODULE: %s %ssuccessfully reloaded", passedname.c_str(), result ? "" : "un");
- User* user = ServerInstance->FindUUID(uuid);
+ User* user = ServerInstance->Users.FindUUID(uuid);
if (user)
user->WriteNumeric(RPL_LOADEDMODULE, passedname, InspIRCd::Format("Module %ssuccessfully reloaded.", (result ? "" : "un")));
diff --git a/src/coremods/core_whois.cpp b/src/coremods/core_whois.cpp
index 8a40e5b71..fc81af1ef 100644
--- a/src/coremods/core_whois.cpp
+++ b/src/coremods/core_whois.cpp
@@ -286,7 +286,7 @@ CmdResult CommandWhois::HandleRemote(RemoteUser* target, const Params& parameter
if (parameters.size() < 2)
return CMD_FAILURE;
- User* user = ServerInstance->FindUUID(parameters[0]);
+ User* user = ServerInstance->Users.FindUUID(parameters[0]);
if (!user)
return CMD_FAILURE;
diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp
index 06848afd9..d78ed96a2 100644
--- a/src/helperfuncs.cpp
+++ b/src/helperfuncs.cpp
@@ -56,15 +56,6 @@ User* InspIRCd::FindNickOnly(const std::string &nick)
return iter->second;
}
-User *InspIRCd::FindUUID(const std::string &uid)
-{
- user_hash::iterator finduuid = this->Users.uuidlist.find(uid);
-
- if (finduuid == this->Users.uuidlist.end())
- return NULL;
-
- return finduuid->second;
-}
/* find a channel record by channel name and return a pointer to it */
Channel* InspIRCd::FindChan(const std::string &chan)
diff --git a/src/modules/m_cap.cpp b/src/modules/m_cap.cpp
index e42b93fad..ac8181df0 100644
--- a/src/modules/m_cap.cpp
+++ b/src/modules/m_cap.cpp
@@ -135,7 +135,7 @@ class Cap::ManagerImpl : public Cap::Manager, public ReloadModule::EventListener
for (std::vector<std::string>::const_iterator j = capdata.users.begin(); j != capdata.users.end(); ++j)
{
const std::string& uuid = *j;
- User* user = ServerInstance->FindUUID(uuid);
+ User* user = ServerInstance->Users.FindUUID(uuid);
if (!user)
{
ServerInstance->Logs.Log(MODNAME, LOG_DEBUG, "User %s is gone when trying to restore cap %s", uuid.c_str(), capdata.name.c_str());
diff --git a/src/modules/m_dnsbl.cpp b/src/modules/m_dnsbl.cpp
index a52e2cbe9..a16384560 100644
--- a/src/modules/m_dnsbl.cpp
+++ b/src/modules/m_dnsbl.cpp
@@ -74,7 +74,7 @@ class DNSBLResolver : public DNS::Request
void OnLookupComplete(const DNS::Query *r) override
{
/* Check the user still exists */
- LocalUser* them = IS_LOCAL(ServerInstance->FindUUID(theiruid));
+ LocalUser* them = IS_LOCAL(ServerInstance->Users.FindUUID(theiruid));
if (!them || them->client_sa != theirsa)
return;
@@ -220,7 +220,7 @@ class DNSBLResolver : public DNS::Request
void OnError(const DNS::Query *q) override
{
- LocalUser* them = IS_LOCAL(ServerInstance->FindUUID(theiruid));
+ LocalUser* them = IS_LOCAL(ServerInstance->Users.FindUUID(theiruid));
if (!them || them->client_sa != theirsa)
return;
diff --git a/src/modules/m_ldapauth.cpp b/src/modules/m_ldapauth.cpp
index 089f428b7..22b0e1fbe 100644
--- a/src/modules/m_ldapauth.cpp
+++ b/src/modules/m_ldapauth.cpp
@@ -108,7 +108,7 @@ class BindInterface : public LDAPInterface
void OnResult(const LDAPResult& r) override
{
- User* user = ServerInstance->FindUUID(uid);
+ User* user = ServerInstance->Users.FindUUID(uid);
dynamic_reference<LDAPProvider> LDAP(me, provider);
if (!user || !LDAP)
@@ -190,7 +190,7 @@ class BindInterface : public LDAPInterface
return;
}
- User* user = ServerInstance->FindUUID(uid);
+ User* user = ServerInstance->Users.FindUUID(uid);
if (user)
{
if (verbose)
@@ -215,7 +215,7 @@ class SearchInterface : public LDAPInterface
void OnResult(const LDAPResult& r) override
{
- LocalUser* user = IS_LOCAL(ServerInstance->FindUUID(uid));
+ LocalUser* user = IS_LOCAL(ServerInstance->Users.FindUUID(uid));
dynamic_reference<LDAPProvider> LDAP(me, provider);
if (!LDAP || r.empty() || !user)
{
@@ -248,7 +248,7 @@ class SearchInterface : public LDAPInterface
void OnError(const LDAPResult& err) override
{
ServerInstance->SNO.WriteToSnoMask('a', "Error searching LDAP server: %s", err.getError().c_str());
- User* user = ServerInstance->FindUUID(uid);
+ User* user = ServerInstance->Users.FindUUID(uid);
if (user)
ServerInstance->Users.QuitUser(user, killreason);
delete this;
diff --git a/src/modules/m_ldapoper.cpp b/src/modules/m_ldapoper.cpp
index 4ebea5bb5..94f389b2a 100644
--- a/src/modules/m_ldapoper.cpp
+++ b/src/modules/m_ldapoper.cpp
@@ -52,7 +52,7 @@ class LDAPOperBase : public LDAPInterface
void Fallback()
{
- User* user = ServerInstance->FindUUID(uid);
+ User* user = ServerInstance->Users.FindUUID(uid);
Fallback(user);
}
@@ -81,7 +81,7 @@ class BindInterface : public LDAPOperBase
void OnResult(const LDAPResult& r) override
{
- User* user = ServerInstance->FindUUID(uid);
+ User* user = ServerInstance->Users.FindUUID(uid);
ServerConfig::OperIndex::const_iterator iter = ServerInstance->Config->oper_blocks.find(opername);
if (!user || iter == ServerInstance->Config->oper_blocks.end())
diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp
index df67a0037..6ef2ea12e 100644
--- a/src/modules/m_sasl.cpp
+++ b/src/modules/m_sasl.cpp
@@ -363,7 +363,7 @@ class CommandSASL : public Command
CmdResult Handle(User* user, const Params& parameters) override
{
- User* target = ServerInstance->FindUUID(parameters[1]);
+ User* target = ServerInstance->Users.FindUUID(parameters[1]);
if (!target)
{
ServerInstance->Logs.Log(MODNAME, LOG_DEBUG, "User not found in sasl ENCAP event: %s", parameters[1].c_str());
diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp
index ce93ea507..d6349fb6e 100644
--- a/src/modules/m_spanningtree/compat.cpp
+++ b/src/modules/m_spanningtree/compat.cpp
@@ -310,7 +310,7 @@ void TreeSocket::WriteLine(const std::string& original_line)
return;
// The nick of the target is necessary for building the PUSH message
- User* const target = ServerInstance->FindUUID(line.substr(13, UIDGenerator::UUID_LENGTH));
+ User* const target = ServerInstance->Users.FindUUID(line.substr(13, UIDGenerator::UUID_LENGTH));
if (!target)
return;
@@ -481,7 +481,7 @@ bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, Comm
// Translate user mode changes with timestamp to MODE
if (params[0][0] != '#')
{
- User* user = ServerInstance->FindUUID(params[0]);
+ User* user = ServerInstance->Users.FindUUID(params[0]);
if (!user)
return false;
diff --git a/src/modules/m_spanningtree/fjoin.cpp b/src/modules/m_spanningtree/fjoin.cpp
index f98b69414..794555d91 100644
--- a/src/modules/m_spanningtree/fjoin.cpp
+++ b/src/modules/m_spanningtree/fjoin.cpp
@@ -206,7 +206,7 @@ void CommandFJoin::ProcessModeUUIDPair(const std::string& item, TreeServer* sour
// Comma not required anymore if the user has no modes
const std::string::size_type ubegin = (comma == std::string::npos ? 0 : comma+1);
std::string uuid(item, ubegin, UIDGenerator::UUID_LENGTH);
- User* who = ServerInstance->FindUUID(uuid);
+ User* who = ServerInstance->Users.FindUUID(uuid);
if (!who)
{
// Probably KILLed, ignore
diff --git a/src/modules/m_spanningtree/idle.cpp b/src/modules/m_spanningtree/idle.cpp
index 8e075e312..49a8b7cd7 100644
--- a/src/modules/m_spanningtree/idle.cpp
+++ b/src/modules/m_spanningtree/idle.cpp
@@ -39,7 +39,7 @@ CmdResult CommandIdle::HandleRemote(RemoteUser* issuer, Params& params)
* the number of seconds 'issuer' has been idle.
*/
- User* target = ServerInstance->FindUUID(params[0]);
+ User* target = ServerInstance->Users.FindUUID(params[0]);
if ((!target) || (target->registered != REG_ALL))
return CMD_FAILURE;
diff --git a/src/modules/m_spanningtree/metadata.cpp b/src/modules/m_spanningtree/metadata.cpp
index ec89c1d7e..aa2d041d7 100644
--- a/src/modules/m_spanningtree/metadata.cpp
+++ b/src/modules/m_spanningtree/metadata.cpp
@@ -60,7 +60,7 @@ CmdResult CommandMetadata::Handle(User* srcuser, Params& params)
}
else
{
- User* u = ServerInstance->FindUUID(params[0]);
+ User* u = ServerInstance->Users.FindUUID(params[0]);
if (u)
{
ExtensionItem* item = ServerInstance->Extensions.GetItem(params[1]);
diff --git a/src/modules/m_spanningtree/num.cpp b/src/modules/m_spanningtree/num.cpp
index 2d7c484e1..d85faa373 100644
--- a/src/modules/m_spanningtree/num.cpp
+++ b/src/modules/m_spanningtree/num.cpp
@@ -26,7 +26,7 @@
CmdResult CommandNum::HandleServer(TreeServer* server, CommandBase::Params& params)
{
- User* const target = ServerInstance->FindUUID(params[1]);
+ User* const target = ServerInstance->Users.FindUUID(params[1]);
if (!target)
return CMD_FAILURE;
diff --git a/src/modules/m_spanningtree/save.cpp b/src/modules/m_spanningtree/save.cpp
index f9af52a9f..3063ea50a 100644
--- a/src/modules/m_spanningtree/save.cpp
+++ b/src/modules/m_spanningtree/save.cpp
@@ -32,7 +32,7 @@
*/
CmdResult CommandSave::Handle(User* user, Params& params)
{
- User* u = ServerInstance->FindUUID(params[0]);
+ User* u = ServerInstance->Users.FindUUID(params[0]);
if (!u)
return CMD_FAILURE;
diff --git a/src/modules/m_spanningtree/svsjoin.cpp b/src/modules/m_spanningtree/svsjoin.cpp
index 9598a6348..0d3881f43 100644
--- a/src/modules/m_spanningtree/svsjoin.cpp
+++ b/src/modules/m_spanningtree/svsjoin.cpp
@@ -33,7 +33,7 @@ CmdResult CommandSVSJoin::Handle(User* user, Params& parameters)
return CMD_FAILURE;
// Check target exists
- User* u = ServerInstance->FindUUID(parameters[0]);
+ User* u = ServerInstance->Users.FindUUID(parameters[0]);
if (!u)
return CMD_FAILURE;
diff --git a/src/modules/m_spanningtree/svspart.cpp b/src/modules/m_spanningtree/svspart.cpp
index 11172f607..6e5f9eb55 100644
--- a/src/modules/m_spanningtree/svspart.cpp
+++ b/src/modules/m_spanningtree/svspart.cpp
@@ -28,7 +28,7 @@
CmdResult CommandSVSPart::Handle(User* user, Params& parameters)
{
- User* u = ServerInstance->FindUUID(parameters[0]);
+ User* u = ServerInstance->Users.FindUUID(parameters[0]);
if (!u)
return CMD_FAILURE;
diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp
index 084da63ff..5dd7f8dd4 100644
--- a/src/modules/m_spanningtree/treesocket2.cpp
+++ b/src/modules/m_spanningtree/treesocket2.cpp
@@ -242,7 +242,7 @@ User* TreeSocket::FindSource(const std::string& prefix, const std::string& comma
else
{
// If the prefix string is a uuid FindUUID() returns the appropriate User object
- User* user = ServerInstance->FindUUID(prefix);
+ User* user = ServerInstance->Users.FindUUID(prefix);
if (user)
return user;
}
diff --git a/src/modules/m_sqlauth.cpp b/src/modules/m_sqlauth.cpp
index 178c13e65..fa63b3741 100644
--- a/src/modules/m_sqlauth.cpp
+++ b/src/modules/m_sqlauth.cpp
@@ -56,7 +56,7 @@ class AuthQuery : public SQL::Query
void OnResult(SQL::Result& res) override
{
- LocalUser* user = IS_LOCAL(ServerInstance->FindUUID(uid));
+ LocalUser* user = IS_LOCAL(ServerInstance->Users.FindUUID(uid));
if (!user)
return;
diff --git a/src/server.cpp b/src/server.cpp
index 11448e746..e5449f71a 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -151,7 +151,7 @@ std::string UIDGenerator::GetUID()
// Add one to the last UID
this->IncrementUID(UUID_LENGTH - 1);
- if (!ServerInstance->FindUUID(current_uid))
+ if (!ServerInstance->Users.FindUUID(current_uid))
break;
/*
diff --git a/src/usermanager.cpp b/src/usermanager.cpp
index cc1fdf66b..1004e5748 100644
--- a/src/usermanager.cpp
+++ b/src/usermanager.cpp
@@ -434,3 +434,15 @@ already_sent_t UserManager::NextAlreadySentId()
}
return already_sent_id;
}
+
+User* UserManager::FindUUID(const std::string& uuid)
+{
+ if (uuid.empty())
+ return nullptr;
+
+ user_hash::iterator uiter = this->uuidlist.find(uuid);
+ if (uiter == this->uuidlist.end())
+ return nullptr;
+
+ return uiter->second;
+}