From 61070d489478793a6ba2ad0bd2ecc90d14555030 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sun, 9 Feb 2020 16:13:04 +0000 Subject: [PATCH] Move FindNick to UserManager. --- include/inspircd.h | 7 ------- include/usermanager.h | 7 +++++++ src/command_parse.cpp | 2 +- src/coremods/core_channel/cmd_invite.cpp | 2 +- src/coremods/core_channel/cmd_kick.cpp | 2 +- src/coremods/core_message.cpp | 2 +- src/coremods/core_mode.cpp | 2 +- src/coremods/core_oper/cmd_kill.cpp | 2 +- src/coremods/core_xline/cmd_eline.cpp | 2 +- src/coremods/core_xline/cmd_gline.cpp | 2 +- src/coremods/core_xline/cmd_kline.cpp | 2 +- src/coremods/core_xline/cmd_zline.cpp | 2 +- src/helperfuncs.cpp | 7 ------- src/mode.cpp | 2 +- src/modules/m_callerid.cpp | 4 ++-- src/modules/m_check.cpp | 2 +- src/modules/m_chghost.cpp | 2 +- src/modules/m_chgident.cpp | 2 +- src/modules/m_chgname.cpp | 2 +- src/modules/m_delayjoin.cpp | 2 +- src/modules/m_ircv3_ctctags.cpp | 2 +- src/modules/m_nicklock.cpp | 4 ++-- src/modules/m_ojoin.cpp | 2 +- src/modules/m_passforward.cpp | 2 +- src/modules/m_remove.cpp | 2 +- src/modules/m_sajoin.cpp | 2 +- src/modules/m_sakick.cpp | 2 +- src/modules/m_sanick.cpp | 2 +- src/modules/m_sapart.cpp | 2 +- src/modules/m_saquit.cpp | 2 +- src/modules/m_servprotect.cpp | 2 +- src/modules/m_showwhois.cpp | 4 ++-- src/modules/m_shun.cpp | 2 +- src/modules/m_spanningtree/postcommand.cpp | 2 +- src/modules/m_spanningtree/svsnick.cpp | 2 +- src/modules/m_spanningtree/translate.cpp | 2 +- src/modules/m_spanningtree/utils.cpp | 2 +- src/modules/m_sqlauth.cpp | 2 +- src/modules/m_sqloper.cpp | 2 +- src/modules/m_swhois.cpp | 2 +- src/modules/m_uninvite.cpp | 2 +- src/usermanager.cpp | 11 +++++++++++ 42 files changed, 59 insertions(+), 55 deletions(-) diff --git a/include/inspircd.h b/include/inspircd.h index 4d1a768a7..5b2138fec 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -339,13 +339,6 @@ class CoreExport InspIRCd */ size_t BindPorts(FailedPortList &failed_ports); - /** Find a user in the nick hash. - * If the user cant be found in the nick hash check the uuid hash - * @param nick The nickname to find - * @return A pointer to the user, or NULL if the user does not exist - */ - User* FindNick(const std::string &nick); - /** Find a user in the nick hash ONLY */ User* FindNickOnly(const std::string &nick); diff --git a/include/usermanager.h b/include/usermanager.h index 3c840d2b2..8f7e782c8 100644 --- a/include/usermanager.h +++ b/include/usermanager.h @@ -192,6 +192,13 @@ class CoreExport UserManager */ already_sent_t NextAlreadySentId(); + /** Find a user by their nickname or UUID. + * IMPORTANT: You probably want to use FindNick or FindUUID instead of this. + * @param nickuuid The nickname or UUID of the user to find. + * @return If the user was found then a pointer to a User object; otherwise, nullptr. + */ + User* Find(const std::string& nickuuid); + /** 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. diff --git a/src/command_parse.cpp b/src/command_parse.cpp index 579c99fd8..d511723dc 100644 --- a/src/command_parse.cpp +++ b/src/command_parse.cpp @@ -425,7 +425,7 @@ void CommandParser::TranslateSingleParam(TranslateType to, const std::string& it case TR_NICK: { /* Translate single nickname */ - User* user = ServerInstance->FindNick(item); + User* user = ServerInstance->Users.Find(item); if (user) dest.append(user->uuid); else diff --git a/src/coremods/core_channel/cmd_invite.cpp b/src/coremods/core_channel/cmd_invite.cpp index 3587c6d89..872e466d7 100644 --- a/src/coremods/core_channel/cmd_invite.cpp +++ b/src/coremods/core_channel/cmd_invite.cpp @@ -51,7 +51,7 @@ CmdResult CommandInvite::Handle(User* user, const Params& parameters) if (IS_LOCAL(user)) u = ServerInstance->FindNickOnly(parameters[0]); else - u = ServerInstance->FindNick(parameters[0]); + u = ServerInstance->Users.Find(parameters[0]); Channel* c = ServerInstance->FindChan(parameters[1]); time_t timeout = 0; diff --git a/src/coremods/core_channel/cmd_kick.cpp b/src/coremods/core_channel/cmd_kick.cpp index a75446946..a56255bdb 100644 --- a/src/coremods/core_channel/cmd_kick.cpp +++ b/src/coremods/core_channel/cmd_kick.cpp @@ -48,7 +48,7 @@ CmdResult CommandKick::Handle(User* user, const Params& parameters) if (IS_LOCAL(user)) u = ServerInstance->FindNickOnly(parameters[1]); else - u = ServerInstance->FindNick(parameters[1]); + u = ServerInstance->Users.Find(parameters[1]); if (!c) { diff --git a/src/coremods/core_message.cpp b/src/coremods/core_message.cpp index 2065e7dff..e5ad97479 100644 --- a/src/coremods/core_message.cpp +++ b/src/coremods/core_message.cpp @@ -237,7 +237,7 @@ class CommandMessage : public Command else { // Remote users can only specify a nick or UUID as the target. - target = ServerInstance->FindNick(parameters[0]); + target = ServerInstance->Users.Find(parameters[0]); } if (!target || target->registered != REG_ALL) diff --git a/src/coremods/core_mode.cpp b/src/coremods/core_mode.cpp index 4e890074b..ff7814255 100644 --- a/src/coremods/core_mode.cpp +++ b/src/coremods/core_mode.cpp @@ -91,7 +91,7 @@ CmdResult CommandMode::Handle(User* user, const Params& parameters) if (IS_LOCAL(user)) targetuser = ServerInstance->FindNickOnly(target); else - targetuser = ServerInstance->FindNick(target); + targetuser = ServerInstance->Users.Find(target); } if ((!targetchannel || !CanSeeChan(user, targetchannel)) && (!targetuser)) diff --git a/src/coremods/core_oper/cmd_kill.cpp b/src/coremods/core_oper/cmd_kill.cpp index b5a7d547f..e37d6d591 100644 --- a/src/coremods/core_oper/cmd_kill.cpp +++ b/src/coremods/core_oper/cmd_kill.cpp @@ -65,7 +65,7 @@ CmdResult CommandKill::Handle(User* user, const Params& parameters) return CMD_FAILURE; } - User* target = ServerInstance->FindNick(parameters[0]); + User* target = ServerInstance->Users.Find(parameters[0]); if (!target) { user->WriteNumeric(Numerics::NoSuchNick(parameters[0])); diff --git a/src/coremods/core_xline/cmd_eline.cpp b/src/coremods/core_xline/cmd_eline.cpp index 16e04d1c7..8f0dbc641 100644 --- a/src/coremods/core_xline/cmd_eline.cpp +++ b/src/coremods/core_xline/cmd_eline.cpp @@ -45,7 +45,7 @@ CmdResult CommandEline::Handle(User* user, const Params& parameters) if (parameters.size() >= 3) { IdentHostPair ih; - User* find = ServerInstance->FindNick(target); + User* find = ServerInstance->Users.Find(target); if ((find) && (find->registered == REG_ALL)) { ih.first = "*"; diff --git a/src/coremods/core_xline/cmd_gline.cpp b/src/coremods/core_xline/cmd_gline.cpp index 30767bfc2..ea81741d4 100644 --- a/src/coremods/core_xline/cmd_gline.cpp +++ b/src/coremods/core_xline/cmd_gline.cpp @@ -46,7 +46,7 @@ CmdResult CommandGline::Handle(User* user, const Params& parameters) if (parameters.size() >= 3) { IdentHostPair ih; - User* find = ServerInstance->FindNick(target); + User* find = ServerInstance->Users.Find(target); if ((find) && (find->registered == REG_ALL)) { ih.first = "*"; diff --git a/src/coremods/core_xline/cmd_kline.cpp b/src/coremods/core_xline/cmd_kline.cpp index dd44c1823..6f29bcc12 100644 --- a/src/coremods/core_xline/cmd_kline.cpp +++ b/src/coremods/core_xline/cmd_kline.cpp @@ -46,7 +46,7 @@ CmdResult CommandKline::Handle(User* user, const Params& parameters) if (parameters.size() >= 3) { IdentHostPair ih; - User* find = ServerInstance->FindNick(target); + User* find = ServerInstance->Users.Find(target); if ((find) && (find->registered == REG_ALL)) { ih.first = "*"; diff --git a/src/coremods/core_xline/cmd_zline.cpp b/src/coremods/core_xline/cmd_zline.cpp index cbb3a9475..eb587cdbc 100644 --- a/src/coremods/core_xline/cmd_zline.cpp +++ b/src/coremods/core_xline/cmd_zline.cpp @@ -50,7 +50,7 @@ CmdResult CommandZline::Handle(User* user, const Params& parameters) return CMD_FAILURE; } - User *u = ServerInstance->FindNick(target); + User *u = ServerInstance->Users.Find(target); if ((u) && (u->registered == REG_ALL)) { diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index d78ed96a2..717c1098d 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -39,13 +39,6 @@ #include /* Find a user record by nickname and return a pointer to it */ -User* InspIRCd::FindNick(const std::string &nick) -{ - if (!nick.empty() && isdigit(*nick.begin())) - return FindUUID(nick); - return FindNickOnly(nick); -} - User* InspIRCd::FindNickOnly(const std::string &nick) { user_hash::iterator iter = this->Users.clientlist.find(nick); diff --git a/src/mode.cpp b/src/mode.cpp index 302d98c66..0777e8bcc 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -190,7 +190,7 @@ ModeAction PrefixMode::OnModeChange(User* source, User*, Channel* chan, std::str if (IS_LOCAL(source)) target = ServerInstance->FindNickOnly(parameter); else - target = ServerInstance->FindNick(parameter); + target = ServerInstance->Users.Find(parameter); if (!target) { diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp index 93867a38c..cd60a4e81 100644 --- a/src/modules/m_callerid.cpp +++ b/src/modules/m_callerid.cpp @@ -107,7 +107,7 @@ struct CallerIDExtInfo : public ExtensionItem while (s.GetToken(tok)) { - User *u = ServerInstance->FindNick(tok); + User *u = ServerInstance->Users.Find(tok); if ((u) && (u->registered == REG_ALL) && (!u->quitting)) { if (dat->accepting.insert(u).second) @@ -166,7 +166,7 @@ class CommandAccept : public Command User* target; if (!cmdfrom || !IS_LOCAL(cmdfrom)) - target = ServerInstance->FindNick(tok); + target = ServerInstance->Users.Find(tok); else target = ServerInstance->FindNickOnly(tok); diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index c16860bf3..b4127929e 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -162,7 +162,7 @@ class CommandCheck : public Command Channel *targchan; std::string chliststr; - targuser = ServerInstance->FindNick(parameters[0]); + targuser = ServerInstance->Users.Find(parameters[0]); targchan = ServerInstance->FindChan(parameters[0]); /* diff --git a/src/modules/m_chghost.cpp b/src/modules/m_chghost.cpp index 591028047..91d4fb2cc 100644 --- a/src/modules/m_chghost.cpp +++ b/src/modules/m_chghost.cpp @@ -58,7 +58,7 @@ class CommandChghost : public Command } } - User* dest = ServerInstance->FindNick(parameters[0]); + User* dest = ServerInstance->Users.Find(parameters[0]); // Allow services to change the host of unregistered users if ((!dest) || ((dest->registered != REG_ALL) && (!user->server->IsULine()))) diff --git a/src/modules/m_chgident.cpp b/src/modules/m_chgident.cpp index ce70a0578..0b3ddeb7a 100644 --- a/src/modules/m_chgident.cpp +++ b/src/modules/m_chgident.cpp @@ -42,7 +42,7 @@ class CommandChgident : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* dest = ServerInstance->FindNick(parameters[0]); + User* dest = ServerInstance->Users.Find(parameters[0]); if ((!dest) || (dest->registered != REG_ALL)) { diff --git a/src/modules/m_chgname.cpp b/src/modules/m_chgname.cpp index 0f5cffbdf..0a29cb60e 100644 --- a/src/modules/m_chgname.cpp +++ b/src/modules/m_chgname.cpp @@ -41,7 +41,7 @@ class CommandChgname : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* dest = ServerInstance->FindNick(parameters[0]); + User* dest = ServerInstance->Users.Find(parameters[0]); if ((!dest) || (dest->registered != REG_ALL)) { diff --git a/src/modules/m_delayjoin.cpp b/src/modules/m_delayjoin.cpp index 50bc092bc..770bf6fdb 100644 --- a/src/modules/m_delayjoin.cpp +++ b/src/modules/m_delayjoin.cpp @@ -242,7 +242,7 @@ ModResult ModuleDelayJoin::OnRawMode(User* user, Channel* channel, ModeHandler* if (IS_LOCAL(user)) dest = ServerInstance->FindNickOnly(param); else - dest = ServerInstance->FindNick(param); + dest = ServerInstance->Users.Find(param); if (!dest) return MOD_RES_PASSTHRU; diff --git a/src/modules/m_ircv3_ctctags.cpp b/src/modules/m_ircv3_ctctags.cpp index 27530dc5f..3bb4c4ef3 100644 --- a/src/modules/m_ircv3_ctctags.cpp +++ b/src/modules/m_ircv3_ctctags.cpp @@ -172,7 +172,7 @@ class CommandTagMsg : public Command else { // Remote users can only specify a nick or UUID as the target. - target = ServerInstance->FindNick(parameters[0]); + target = ServerInstance->Users.Find(parameters[0]); } if (!target || target->registered != REG_ALL) diff --git a/src/modules/m_nicklock.cpp b/src/modules/m_nicklock.cpp index b5f41ac89..31f9249e0 100644 --- a/src/modules/m_nicklock.cpp +++ b/src/modules/m_nicklock.cpp @@ -50,7 +50,7 @@ class CommandNicklock : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* target = ServerInstance->FindNick(parameters[0]); + User* target = ServerInstance->Users.Find(parameters[0]); if ((!target) || (target->registered != REG_ALL)) { @@ -110,7 +110,7 @@ class CommandNickunlock : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* target = ServerInstance->FindNick(parameters[0]); + User* target = ServerInstance->Users.Find(parameters[0]); if (!target) { diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp index edd0a1e70..da499ae36 100644 --- a/src/modules/m_ojoin.cpp +++ b/src/modules/m_ojoin.cpp @@ -93,7 +93,7 @@ class NetworkPrefix : public PrefixMode ModResult AccessCheck(User* source, Channel* channel, std::string ¶meter, bool adding) override { - User* theuser = ServerInstance->FindNick(parameter); + User* theuser = ServerInstance->Users.Find(parameter); // remove own privs? if (source == theuser && !adding) return MOD_RES_ALLOW; diff --git a/src/modules/m_passforward.cpp b/src/modules/m_passforward.cpp index bfd45e9e9..1e0d0b4ff 100644 --- a/src/modules/m_passforward.cpp +++ b/src/modules/m_passforward.cpp @@ -99,7 +99,7 @@ class ModulePassForward : public Module if (!nickrequired.empty()) { /* Check if nick exists and its server is ulined */ - User* u = ServerInstance->FindNick(nickrequired); + User* u = ServerInstance->Users.Find(nickrequired); if (!u || !u->server->IsULine()) return; } diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp index 0d5ac2f5b..891cf4cb9 100644 --- a/src/modules/m_remove.cpp +++ b/src/modules/m_remove.cpp @@ -75,7 +75,7 @@ class RemoveBase : public Command if (IS_LOCAL(user)) target = ServerInstance->FindNickOnly(username); else - target = ServerInstance->FindNick(username); + target = ServerInstance->Users.Find(username); /* And the channel we're meant to be removing them from */ channel = ServerInstance->FindChan(channame); diff --git a/src/modules/m_sajoin.cpp b/src/modules/m_sajoin.cpp index f39294f03..2cbfaead2 100644 --- a/src/modules/m_sajoin.cpp +++ b/src/modules/m_sajoin.cpp @@ -49,7 +49,7 @@ class CommandSajoin : public Command const std::string& channel = parameters[channelindex]; const std::string& nickname = parameters.size() > 1 ? parameters[0] : user->nick; - User* dest = ServerInstance->FindNick(nickname); + User* dest = ServerInstance->Users.Find(nickname); if ((dest) && (dest->registered == REG_ALL)) { if (user != dest && !user->HasPrivPermission("users/sajoin-others")) diff --git a/src/modules/m_sakick.cpp b/src/modules/m_sakick.cpp index 784bbb170..ad5857291 100644 --- a/src/modules/m_sakick.cpp +++ b/src/modules/m_sakick.cpp @@ -37,7 +37,7 @@ class CommandSakick : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* dest = ServerInstance->FindNick(parameters[1]); + User* dest = ServerInstance->Users.Find(parameters[1]); Channel* channel = ServerInstance->FindChan(parameters[0]); if ((dest) && (dest->registered == REG_ALL) && (channel)) diff --git a/src/modules/m_sanick.cpp b/src/modules/m_sanick.cpp index 481d7d698..0c96b6df4 100644 --- a/src/modules/m_sanick.cpp +++ b/src/modules/m_sanick.cpp @@ -40,7 +40,7 @@ class CommandSanick : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* target = ServerInstance->FindNick(parameters[0]); + User* target = ServerInstance->Users.Find(parameters[0]); /* Do local sanity checks and bails */ if (IS_LOCAL(user)) diff --git a/src/modules/m_sapart.cpp b/src/modules/m_sapart.cpp index 815f1f465..c96441d10 100644 --- a/src/modules/m_sapart.cpp +++ b/src/modules/m_sapart.cpp @@ -42,7 +42,7 @@ class CommandSapart : public Command if (CommandParser::LoopCall(user, this, parameters, 1)) return CMD_FAILURE; - User* dest = ServerInstance->FindNick(parameters[0]); + User* dest = ServerInstance->Users.Find(parameters[0]); Channel* channel = ServerInstance->FindChan(parameters[1]); std::string reason; diff --git a/src/modules/m_saquit.cpp b/src/modules/m_saquit.cpp index dbb80bf76..ccf578cfb 100644 --- a/src/modules/m_saquit.cpp +++ b/src/modules/m_saquit.cpp @@ -41,7 +41,7 @@ class CommandSaquit : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* dest = ServerInstance->FindNick(parameters[0]); + User* dest = ServerInstance->Users.Find(parameters[0]); if ((dest) && (dest->registered == REG_ALL)) { if (dest->server->IsULine()) diff --git a/src/modules/m_servprotect.cpp b/src/modules/m_servprotect.cpp index 7a344a04f..2c216c0d6 100644 --- a/src/modules/m_servprotect.cpp +++ b/src/modules/m_servprotect.cpp @@ -92,7 +92,7 @@ class ModuleServProtectMode : public Module, public Whois::EventListener, public /* Check if the parameter is a valid nick/uuid */ - User *u = ServerInstance->FindNick(param); + User *u = ServerInstance->Users.Find(param); if (u) { Membership* memb = chan->GetUser(u); diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp index f4c4553b0..1a4f015b1 100644 --- a/src/modules/m_showwhois.cpp +++ b/src/modules/m_showwhois.cpp @@ -59,11 +59,11 @@ class WhoisNoticeCmd : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* dest = ServerInstance->FindNick(parameters[0]); + User* dest = ServerInstance->Users.Find(parameters[0]); if (!dest) return CMD_FAILURE; - User* source = ServerInstance->FindNick(parameters[1]); + User* source = ServerInstance->Users.Find(parameters[1]); if (IS_LOCAL(dest) && source) HandleFast(dest, source); diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index 6a15fb488..7b87232b7 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -74,7 +74,7 @@ class CommandShun : public Command std::string target = parameters[0]; - User *find = ServerInstance->FindNick(target); + User *find = ServerInstance->Users.Find(target); if ((find) && (find->registered == REG_ALL)) target = std::string("*!*@") + find->GetIPString(); diff --git a/src/modules/m_spanningtree/postcommand.cpp b/src/modules/m_spanningtree/postcommand.cpp index 2960717b7..62ef7e484 100644 --- a/src/modules/m_spanningtree/postcommand.cpp +++ b/src/modules/m_spanningtree/postcommand.cpp @@ -116,7 +116,7 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, CommandBase* thiscm else { // user target? - User* d = ServerInstance->FindNick(dest); + User* d = ServerInstance->Users.Find(dest); if (!d || IS_LOCAL(d)) return; TreeServer* tsd = TreeServer::Get(d)->GetRoute(); diff --git a/src/modules/m_spanningtree/svsnick.cpp b/src/modules/m_spanningtree/svsnick.cpp index e9292f445..d88df9245 100644 --- a/src/modules/m_spanningtree/svsnick.cpp +++ b/src/modules/m_spanningtree/svsnick.cpp @@ -29,7 +29,7 @@ CmdResult CommandSVSNick::Handle(User* user, Params& parameters) { - User* u = ServerInstance->FindNick(parameters[0]); + User* u = ServerInstance->Users.Find(parameters[0]); if (u && IS_LOCAL(u)) { diff --git a/src/modules/m_spanningtree/translate.cpp b/src/modules/m_spanningtree/translate.cpp index d5788d18c..87f556f52 100644 --- a/src/modules/m_spanningtree/translate.cpp +++ b/src/modules/m_spanningtree/translate.cpp @@ -34,7 +34,7 @@ std::string Translate::ModeChangeListToParams(const Modes::ChangeList::List& mod if (mh->IsPrefixMode()) { - User* target = ServerInstance->FindNick(item.param); + User* target = ServerInstance->Users.Find(item.param); if (target) { ret.append(target->uuid); diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 0f839efe7..6e08203ea 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -99,7 +99,7 @@ TreeServer* SpanningTreeUtilities::FindRouteTarget(const std::string& target) if (server) return server; - User* const user = ServerInstance->FindNick(target); + User* const user = ServerInstance->Users.Find(target); if (user) return TreeServer::Get(user); diff --git a/src/modules/m_sqlauth.cpp b/src/modules/m_sqlauth.cpp index fa63b3741..b923ed6ea 100644 --- a/src/modules/m_sqlauth.cpp +++ b/src/modules/m_sqlauth.cpp @@ -110,7 +110,7 @@ class AuthQuery : public SQL::Query void OnError(SQL::Error& error) override { - User* user = ServerInstance->FindNick(uid); + User* user = ServerInstance->Users.Find(uid); if (!user) return; pendingExt.set(user, AUTH_STATE_FAIL); diff --git a/src/modules/m_sqloper.cpp b/src/modules/m_sqloper.cpp index 9d7ace7d8..ff01af6ad 100644 --- a/src/modules/m_sqloper.cpp +++ b/src/modules/m_sqloper.cpp @@ -128,7 +128,7 @@ class OperQuery : public SQL::Query // Call /oper after placing all blocks from the SQL table into the config->oper_blocks list. void OperExec() { - User* user = ServerInstance->FindNick(uid); + User* user = ServerInstance->Users.Find(uid); LocalUser* localuser = IS_LOCAL(user); // This should never be true if (!localuser) diff --git a/src/modules/m_swhois.cpp b/src/modules/m_swhois.cpp index 2ba2dd748..b06f357d0 100644 --- a/src/modules/m_swhois.cpp +++ b/src/modules/m_swhois.cpp @@ -50,7 +50,7 @@ class CommandSwhois : public Command CmdResult Handle(User* user, const Params& parameters) override { - User* dest = ServerInstance->FindNick(parameters[0]); + User* dest = ServerInstance->Users.Find(parameters[0]); if (!dest) // allow setting swhois using SWHOIS before reg { diff --git a/src/modules/m_uninvite.cpp b/src/modules/m_uninvite.cpp index e86211e5e..6909dee3f 100644 --- a/src/modules/m_uninvite.cpp +++ b/src/modules/m_uninvite.cpp @@ -53,7 +53,7 @@ class CommandUninvite : public Command if (IS_LOCAL(user)) u = ServerInstance->FindNickOnly(parameters[0]); else - u = ServerInstance->FindNick(parameters[0]); + u = ServerInstance->Users.Find(parameters[0]); Channel* c = ServerInstance->FindChan(parameters[1]); diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 1004e5748..d597fe038 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -435,6 +435,17 @@ already_sent_t UserManager::NextAlreadySentId() return already_sent_id; } +User* UserManager::Find(const std::string& nickuuid) +{ + if (nickuuid.empty()) + return nullptr; + + if (isdigit(nickuuid[0])) + return FindUUID(nickuuid); + + return FindNick(nickuuid); +} + User* UserManager::FindUUID(const std::string& uuid) { if (uuid.empty())