diff options
| -rw-r--r-- | include/inspircd.h | 6 | ||||
| -rw-r--r-- | include/usermanager.h | 6 | ||||
| -rw-r--r-- | src/configreader.cpp | 4 | ||||
| -rw-r--r-- | src/coremods/core_hostname_lookup.cpp | 4 | ||||
| -rw-r--r-- | src/coremods/core_reloadmodule.cpp | 6 | ||||
| -rw-r--r-- | src/coremods/core_whois.cpp | 2 | ||||
| -rw-r--r-- | src/helperfuncs.cpp | 9 | ||||
| -rw-r--r-- | src/modules/m_cap.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_dnsbl.cpp | 4 | ||||
| -rw-r--r-- | src/modules/m_ldapauth.cpp | 8 | ||||
| -rw-r--r-- | src/modules/m_ldapoper.cpp | 4 | ||||
| -rw-r--r-- | src/modules/m_sasl.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/compat.cpp | 4 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/fjoin.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/idle.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/metadata.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/num.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/save.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/svsjoin.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/svspart.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_spanningtree/treesocket2.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_sqlauth.cpp | 2 | ||||
| -rw-r--r-- | src/server.cpp | 2 | ||||
| -rw-r--r-- | src/usermanager.cpp | 12 |
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; +} |
